Подтвердить что ты не робот

Как я могу получить сегодня timestamp в PHP

Я пробовал

$dtToday = DateTime::createFromFormat('Y-m-d', date('Y-m-d'));

но когда я вывожу его

die($dtToday->format('d M Y g:i:s a'));

Я все еще получаю время, например "22 янв. 2011 4:53:59". Почему это?

UPDATE

Ах... многие меня неправильно поняли, я плохо, я забыл указать на главный момент. Я создал дату только с датой, я не хочу времени. Поэтому я ожидал бы что-то вроде

22 Jan 2011 12:00:00 am
4b9b3361

Ответ 1

Вы можете вызвать ->setTime(0, 0) чтобы обнулить часть времени:

$date = DateTime::createFromFormat('Y-m-d', '2011-01-22')->setTime(0, 0);
echo $date->format('d M Y g:i:s a');
// 22 Jan 2011 12:00:00 am

Ответ 2

См. документацию для DateTime::createFromFormat:

Если формат не содержит символа! то части сгенерированного времени, которые не указаны в формате, будут установлены на текущее системное время.

Если вы выполните следующий вызов функции, вы получите ожидаемый результат:

$dtToday = DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));

Ответ 3

Вы можете сделать это, передав текущую временную метку unix в качестве второго параметра функции даты

echo date("Y-m-d H:i:s",time());

Ответ 4

Сегодня начинаем отметку времени

$today_start_ts = strtotime(date('Y-m-d', time()). '00:00:00');

Ответ 5

Вы получаете "22 янв. 2011 4:53:59 pm", потому что это правила, которые вы отформатируете для своей даты:
d (день): 22
M (месяц): Ян
Y (Год): 2011
г (12-часовой формат): 4
i (минуты): 53
s (секунды): 59
a (am/pm): pm
Будьте более точными относительно формата, который вам понравится в вашей временной метке. Я предлагаю вам взять пик в документации php date.

Ответ 6

Используется ли UTC или что-то еще?

У меня есть версия PHP, которая дает мне ошибку всякий раз, когда я делаю что-то date, связанное без предварительного использования date_default_timezone_set. Возможно, это поможет вам.

Ответ 7

Удалите эту часть g:i:s a из своего кода.

Теперь, если вам нужна хорошая дата, отформатированная в соответствии с вашим локальным, я рекомендую вам использовать strftime().