#php
#php
Вопрос:
Я хочу получить месяц из даты, эти даты взяты из базы данных, поэтому некоторые даты представлены в формате ‘0000-00-00’.
//например, я привожу эту дату ниже
$arr='0000-00-00';
$thismonth = date('m', strtotime($arr));
echo $thismonth;
// здесь я ожидаю чего-то типа 00 или null, но ответ равен 11.
Комментарии:
1. У PHP есть проблемы с интерпретацией этого результата даты:
-0001-11-30
. Смотрите php.net/manual/de/datetime.construct.php . Возможно, это связано с тем, что григорианский календарь не определен для этой даты2. Не связано, но почему вы называете строку $arr? Вам нравится этот вызов или что-то в этом роде?
3. На самом деле даты передаются как массив, поэтому мне нужно брать даты в месячном исчислении, поэтому здесь передаются некоторые нулевые даты
Ответ №1:
дата никогда не бывает ‘0000-00-00’ или 0 или null, в функции date вы никогда не вводите неправильное значение, поэтому проверьте
$arr='0000-00-00';
if($arr != '0000-00-00'){
$thismonth = date('m', strtotime($arr));
echo $thismonth;
}
else{
$thismonth = '00';
}
Комментарии:
1. В поле даты, если пользователь забыл ввести дату. дата в базе данных сохраняется как это значение-> ‘0000-00-00’. Затем мне нужно перечислить эти значения, зависящие от месяца, поэтому 00 принимает значение 11