Неправильная дата php ('t') - PullRequest
       15

Неправильная дата php ('t')

0 голосов
/ 15 ноября 2018

У меня есть этот скрипт

echo 'giorni mese: '.date('t', $mese_start).' - mese start: '.$mese_start;

вывод:

giorni mese: 31 - mese start: 11

Но ноября нет 30 дней?

Чего мне не хватает?


Обновление: Хорошо, спасибо.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Второй аргумент date интерпретируется как метка времени Unix, а не месяц.Вы передаете «11», что равняется некоторому времени 1 января 1970 года. А в январе 31 день.

Вы можете либо создать действительную временную метку для ноября, либо использовать cal_days_in_month:

echo cal_days_in_month(CAL_GREGORIAN, 11, 2018); // 30
0 голосов
/ 15 ноября 2018

Второй аргумент date() - это отметка времени, которая представляет собой количество секунд с 1970-01-01 00:00:00 UTC. Значение $mese_start равно 11. Так что отметка времени составляет 1970-01-01 00:00:11 UTC, а в январе 31 день.

Если вы хотите использовать $mese_start в качестве номера месяца, а не метки времени, вы можете использовать mktime() для создания метки времени на определенную дату:

$ts = mktime(0, 0, 0, $mese_start);
echo 'giorni mese: '.date('t', $ts).' - mese start: '.$mese_start;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...