【问题标题】:PHP int to date problemPHP int 迄今为止的问题
【发布时间】: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


    【解决方案1】:

    日期是特定于时区的。您需要将其设置为 GMT 以获得您想要的结果。

    date_default_timezone_set('GMT');
    $t=77;
    echo date("H:i:s", $t);
    

    【讨论】:

      【解决方案2】:

      date() 的第二个参数是一个 unix 时间戳 - 换句话说,它是自 1970 年 1 月 1 日以来的秒数,调整为 PHP 为时区设置的值(可以使用 date_default_timezone_set 设置)。

      【讨论】:

        【解决方案3】:

        尝试设置 GMT 时区。

        date_default_timezone_set('Europe/London');
        

        【讨论】:

        • 伦敦在一年中的某些时候不是与格林威治标准时间不同吗?
        • 设置为欧洲/伦敦返回 01:01:17。请参阅下面的解决方案。
        【解决方案4】:

        我认为如果你在第二个获得值,那么你应该使用 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);
        猜你喜欢
        • 2014-11-16
        • 1970-01-01
        • 1970-01-01
        • 2019-09-09
        • 2017-08-14
        • 2021-05-17
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多