V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lneoi
V2EX  ›  PHP

PHP DateTime 类计算早于改历时间的坑

  •  
  •   lneoi · 2017-10-12 08:33:13 +08:00 · 1884 次点击
    这是一个创建于 2378 天前的主题,其中的信息可能已经有所发展或是发生改变。
    时间戳只能计算 1970 年后的时间,由于需要计算更早的日期,发现 PHP 还有提供一个 DateTime 类。
    但在使用中发现在 1582 年改历之后的置闰算法符合日历,但在之前的置闰算法有问题,每整百年时像是 1300 年,应该按旧置闰法不标记为闰年,所以二月有 29 号,但实际传入这天时,会自动换算成 3 月 1 号,diff 计算天数差,也会有错误。
    看起来像是 1582 年之前的旧历 按后来新改的置闰法计算了。
    4 条回复    2017-10-12 18:39:30 +08:00
    dangyuluo
        1
    dangyuluo  
       2017-10-12 09:32:14 +08:00
    应该是没考虑这种历史问题吧
    gouchaoer
        2
    gouchaoer  
       2017-10-12 10:12:08 +08:00 via Android
    历史上改历了
    sagaxu
        3
    sagaxu  
       2017-10-12 16:30:25 +08:00
    这种不同国家可能还不一样,多个历法互相矛盾
    noNOno
        4
    noNOno  
       2017-10-12 18:39:30 +08:00
    恭喜发现了新的 timeline
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5477 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:15 · PVG 17:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.