Я не могу понять, что это неправильна йота это код, который я написал, и почему она имеет неинтуитивное поведениеWeird поведения сравнения strotime
if(($datav == 0) || ((strtotime($datav)) > (strtotime('01/01/2014')))) {
echo 'yes';
}
else if((strtotime($datav)) < (strtotime('01/01/2014'))) {
echo 'no';
}
$ datav является переменной датой, которые могут или не могут быть установлены в в форме Wordpress, которую я написал.
вот что происходит: если дата не установлена (== 0), код работает, он перекликается с «да»; если дата установлена и находится до 01/01/2014, она также работает, она отгоняет «нет»; но если дата установлена и после 01/01/2014 она не работает, а эхо «нет». в третьем случае, я уверен, что я установил правильную дату (дата после 01/01/2014), потому что я повторил ее, чтобы проверить ее.
Что я делаю неправильно? Спасибо всем.
Какой формат даты вы передаете в '$ datav' –
StrToTime требователен форматов даты она работает. Если вы форматируете дату YYYY-MM-DD, она работает, иначе, как сейчас, она принимает ММ/ДД/ГГГГ. – bumperbox
Вы можете просто решить эту проблему самостоятельно, если бы вы просто отлаживали свои переменные и 'strtotime()', например: 'var_dump (strtotime ($ datav))' и т. Д. Вы бы быстро увидели, что результат, вероятно, «false» или неправильная метка времени ... –