【问题标题】:converting negative integer to datetime gmt-3 and mktime - php将负整数转换为日期时间 gmt-3 和 mktime - php
【发布时间】:2015-08-09 21:08:23
【问题描述】:

已编辑:

这部分是我需要解决的:

我有一个负整数,例如:-10800,我希望在我的当地时间,即布宜诺斯艾利斯 (gmt -3) 进行转换。

我正在使用在线转换器检查它是什么日期,以便我可以检查结果:www.4webhelp.net 它抛出 -10800 是 1969 年 12 月 31 日,星期三,18:00:00(格林威治标准时间 -3 ) 但我认为这是不正确的。有人告诉我负数在我的时区,即布宜诺斯艾利斯。

我还想使用相同的时间格式创建从日期到字符串。我该怎么做?

这部分已解决:

为了做到这一点,我尝试了很多事情,在学习 mktime 时出现了一个新的疑问:

我想知道 2 月的最后一天是哪一天:

$lastday = mktime(0, 0, 0, 2, 0, 2015);
echo strftime("Last day is: %d", $lastday);

这会抛出 2 月有 31 天,这是不正确的。为什么会这样?

【问题讨论】:

    标签: php date datetime gmt


    【解决方案1】:

    如果day是0,那么PHP取上个月的最后一天,所以

    $lastday = mktime(0, 0, 0, 2, 0, 2015);
    

    2015 年 1 月 31 日 1 月 (第 2 个月的第 0 天,有效)

    根据PHP docs

    一天

    相对于上个月月底的天数。值 1 到 28、29、30 或 31(取决于月份)参考相关月份的正常天数。 小于 1 的值(包括负值)参考上个月的天数,因此 0 是上个月的最后一天,-1 是上个月的前一天,以此类推。大于天数的值相关月份参考下个月的适当日期。

    (我的重点)

    编辑

    如果您想要二月的最后一天,请使用

    $lastday = mktime(0, 0, 0, 2, 1, 2015);
    echo 'Last day is: ', date("t", $lastday);
    

    【讨论】:

    • 谢谢你的回答,现在我明白了。但是我的第一个问题仍然有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2018-04-13
    • 2016-11-12
    • 2011-10-09
    • 2018-07-07
    • 2011-06-27
    • 2021-05-02
    相关资源
    最近更新 更多