Установите время в php 00:00:00 - PullRequest
7 голосов
/ 14 октября 2011

Мне нужно отобразить время, но оно должно начинаться с 00:00:00? У меня есть следующее, но оно использует текущее время.

print(date("H:i:s"));

Ответы [ 4 ]

23 голосов
/ 14 октября 2011

В качестве альтернативы mktime(), попробуйте новый класс DateTime, например,

$dt = new DateTime;
$dt->setTime(0, 0);
echo $dt->format('H:i:s');

// Add one hour
$dt->add(new DateInterval('PT1H'));
echo $dt->format('H:i:s');

Обновление

Гибкость DateInterval делает это очень хорошим кандидатом натаймер, например

// add 2 years, 1 day and 9 seconds
$dt->add(new DateInterval('P2Y1DT9S'));
6 голосов
/ 14 октября 2011

Используйте mktime(), если хотите начать с полуночи для текущей даты:

<?php

echo date('l jS \of F Y h:i:s A',mktime(0,0,0));

?>

ВЫХОДЫ

Friday 14th of October 2011 12:00:00 AM

http://codepad.org/s2NrVfRq

В mktime() вы передаете аргументы для hours, minutes, seconds, month, day, year, поэтому установите hours, minutes, seconds в 0, чтобы получить today at midnight.(Обратите внимание, что, как указывает Фил, аргументы mktime() являются необязательными, и вы можете опустить month, day, year, и он по умолчанию будет соответствовать текущей дате).

Функция mktime() возвращает метку времени unix, представляющуюколичество секунд с начала эпохи Unix (1 января 1970 г.).Вы можете рассчитывать на него в секундах или кратных секундах.

<?php

// $midnight = mktime(0,0,0,date('m'),date('d'),date('Y'));
// The above is equivalent to below
$midnight = mktime(0,0,0);

echo date('l jS \of F Y h:i:s A',$midnight)."\n";
echo date('l jS \of F Y h:i:s A',$midnight+60)."\n"; // One minute
echo date('l jS \of F Y h:i:s A',$midnight+(60*60))."\n"; // One hour

?>

ВЫХОДЫ

Friday 14th of October 2011 12:00:00 AM
Friday 14th of October 2011 12:01:00 AM
Friday 14th of October 2011 01:00:00 AM

http://codepad.org/FTr98z1n

1 голос
/ 14 октября 2011

date() использует текущее время, когда вы не передаете явную метку времени.См. Необязательный аргумент в документации date .

Если вы хотите явно отформатировать полночь, используйте:

date("H:i:s", mktime(0, 0, 0));
0 голосов
/ 14 октября 2011

попробуйте использовать этот синтаксис:

print(date("H:i:s", 0));

или

print(date("H:i:s", 10)); // 10 seconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...