PHP的gmtime()在哪里?

时间:2015-12-04 08:21:56

标签: php

有两个标准的C lib函数gmtime() and localtime()。他们都返回这样的结构(一个在GMT,一个在本地TZ和夏令时):

struct tm {
    int tm_sec;         /* seconds */
    int tm_min;         /* minutes */
    int tm_hour;        /* hours */
    int tm_mday;        /* day of the month */
    int tm_mon;         /* month */
    int tm_year;        /* year */
    int tm_wday;        /* day of the week */
    int tm_yday;        /* day in the year */
    int tm_isdst;       /* daylight saving time */
};

PHP有一个超过localtime()的包装器,但据我所知,不是gmtime()。我错过了什么? PHP的gmtime()包装器在哪里?

我确实找到了一个非常旧的PHP gmtime() - https://bugs.php.net/bug.php?id=576&edit=1请求。但它被关闭并被解雇,因为不需要。我不同意。

我不需要它。但是将struct tm从当地时间转换为GMT并非易事(AFAIK),所以拥有它会很好。和localtime()一样好。

2 个答案:

答案 0 :(得分:2)

总之,@ WoouterHuysentruit指出在localtime()文档页面的注释中讨论了gmtime()的缺席。有人说它没有在所有系统上正确实现或根本没有实现,这是因为它的标准C89和POSIX令人惊讶。无论如何,Wouter指出在评论中还有一个gmtime()的PHP实现,这对我来说很有用。

答案 1 :(得分:2)

函数time()的文档(http://php.net/manual/en/function.time.php)中指出:

“返回以Unix时代(1970年1月1日00:00:00 GMT)以来的秒数为单位的当前时间。”

所以gmtime就是time()。