在php中设置时间为00:00:00

时间:2011-10-14 13:57:16

标签: php time

我需要显示时间,但必须从00:00:00开始?我有以下但它使用当前时间。

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

4 个答案:

答案 0 :(得分:22)

作为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'));

答案 1 :(得分:5)

如果您想从当前日期的午夜开始,请使用mktime()

<?php

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

?>

<强> OUTPUTS

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。 (注意,正如Phil指出的那样,mktime()的参数是可选的,您可以将month, day, year保留,并且它将默认为当前日期。

mktime()函数返回一个unix时间戳,表示自unix纪元(1970年1月1日)以来的秒数。您可以在几秒或几秒钟内从中计算出来。

<?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

?>

<强> OUTPUTS

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

答案 2 :(得分:1)

当您未传递显式时间戳时,

date()使用当前时间。请参阅date documentation中的可选参数。

如果您想明确格式化午夜,请使用:

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

答案 3 :(得分:-1)

尝试使用以下语法:

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

print(date("H:i:s", 10)); // 10 seconds