Проблема связана с тем, что выбирая из базы поле с датой она выглядит так: 2008-07-29 А при вводе даты в поля формы она может быть записана как 2008-07-29, так и 2008-7-29 Поэтому при сравнении дат они не совпадают Чтобы всё работало мне нужно узнать количество цифр в числе. Как это сделать?
Если не заморачиваясь то: PHP: <?php //////////////////// Давным-давно в далеком-далеком методе $number_array = explode('-', $number); if(!empty($number_array[1]) && (count($number_array) == 3)){ return strlen($number_array) // if utf-8 => mb_strlen } return 'не не не Дэвид Блейн о_О '; ?> А если чуть серьезнее: 1. ИМХО что бы не париться нужно или прикрутить JS календарь, кот. будет выдавать в инпут только то что нужно, либо сделать в инпуте ГГГГ-MM-ДД и опять же дать вставлять туда только циферки и только в нужном кол-ве. 2. Дату хранить либо в TIMSTAMP либо DATE TIME, а не в CHAR
Хм я описАлся... Имелось в виду как раз DATE. А ты как сравниваешь? Быть может стоит сравнивать просто TIMESTAMP'ы ? (Функция UNIX_TIMESTAMP(`date_field`) ). Или планируется наличие дат до 1970?
PHP: <?php $date = "2008-7-29"; $data = explode("-", $date); echo date("Y-m-d", mktime(0,0,0,$data['1'], $data['2'], $data['0'])); ?>
шоб жизнь медом не казалась $date = call_user_func_array('sprintf', array_merge(array('%04d-%02d-%02d'), explode('-', $POST, 3)));
host, ну некогда сайтом заняться... вот получу денюжку с заказчика, сделаю нормальный дизайн и займусь