采取下面的代码一看:PHP INT最新问题
$t=77;
date("H:i:s", $t);
它返回
21:01:17
正确的结果,当然,应该是这样的0时01分17秒。
$ t值确实是由YouTube GData API,trought($videoEntry->getVideoDuration())
返回的数值。
如何解决这个问题?
采取下面的代码一看:PHP INT最新问题
$t=77;
date("H:i:s", $t);
它返回
21:01:17
正确的结果,当然,应该是这样的0时01分17秒。
$ t值确实是由YouTube GData API,trought($videoEntry->getVideoDuration())
返回的数值。
如何解决这个问题?
日期是特定于时区的。您需要将其设置为GMT以获得您想要的结果。
date_default_timezone_set('GMT');
$t=77;
echo date("H:i:s", $t);
尝试设置GMT时区。
date_default_timezone_set('Europe/London');
伦敦的时间不是格林威治标准时间的一部分时间? – Atli 2009-12-01 18:54:37
设置为欧洲/伦敦返回01:01:17。见下面的解决方案 – 2009-12-01 18:55:33
的第二个参数的日期()是一个Unix时间戳 - 换句话说,它是一个数字的自1970年1月1日,秒调整到什么PHP被设置为一个时区(可以与date_default_timezone_set被设置)。
我认为,如果你在第二个值,那么你应该使用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;回声日期(“H:i:s”,$ t);'。 – Atli 2009-12-01 19:18:26
嗨Atli ...你是对的......谢谢澄清 – 2009-12-02 18:26:27
确定GMT或UTC正常工作。 thx – 2009-12-01 18:54:50