【发布时间】:2009-12-01 18:47:08
【问题描述】:
看看下面的代码:
$t=77;
date("H:i:s", $t);
返回
21:01:17
当然,正确的结果应该是 00:01:17。
$t 值确实是 YouTube GData API trought($videoEntry->getVideoDuration()) 返回的以秒为单位的值。
如何解决这个问题?
【问题讨论】:
标签: php date youtube-api
看看下面的代码:
$t=77;
date("H:i:s", $t);
返回
21:01:17
当然,正确的结果应该是 00:01:17。
$t 值确实是 YouTube GData API trought($videoEntry->getVideoDuration()) 返回的以秒为单位的值。
如何解决这个问题?
【问题讨论】:
标签: php date youtube-api
日期是特定于时区的。您需要将其设置为 GMT 以获得您想要的结果。
date_default_timezone_set('GMT');
$t=77;
echo date("H:i:s", $t);
【讨论】:
date() 的第二个参数是一个 unix 时间戳 - 换句话说,它是自 1970 年 1 月 1 日以来的秒数,调整为 PHP 为时区设置的值(可以使用 date_default_timezone_set 设置)。
【讨论】:
尝试设置 GMT 时区。
date_default_timezone_set('Europe/London');
【讨论】:
我认为如果你在第二个获得值,那么你应该使用 mktime 函数,然后它会给出正确的结果。例如:
$t=77;
echo date("H:i:s", mktime(0,0,$t));
【讨论】:
mktime 函数创建一个时间戳 - 自 1970-01-01 以来的秒数 - 并且仅将其与秒值一起使用只会在该特定时间为今天创建一个时间戳。例如。 2009-12-01 00:01:17(使用 GMT)。如果您只对时间值感兴趣,则不会改变任何内容。您发布的内容实际上等同于$t=77; echo date("H:i:s", $t);。