php获取12个月前的日期,PHP 1901年12月13日之前的日期的32位日期解析

我很高兴在开发机器上使用strtotime()来解析日期,其中一些是在1800年代,而一个极端的例子是在1500年代.

但是我的开发机器是64位,服务器是32位.在32位计算机上,1901年12月13日星期五之前的任意日期UTC超出范围(请参阅strtotime注释).

我很乐意为此编写一些自定义代码,但以为我会问是否有任何php内置函数可以管理此代码.日期采用ISO 8601格式.

对于什么是值得的服务器是带有PHP 5.2.10的centos 5.4

解决方法:

1901-12-12T05:00:00Z for example

我目前无法对其进行测试,但是DateTime‘s constructor可以接受您的格式而无需createFromFormat.我真的不能从文档中看出来.

尝试

try {

$date = new DateTime('1901-12-12T05:00:00Z');

} catch (Exception $e) {

echo "Arggh! ".$e->getMessage();

die();

}

echo $date->format('Y-m-d H:i:s');

并查看会发生什么,请特别注意它是否正确理解Z(即使其成为UTC时间).

DateTime在任何系统上内部都使用64位数字,并且没有范围限制.

如前所述,从5.3开始,您将能够使用createFromFormat来解析由date()的占位符之一表示的任何日期.这是最佳方法,因为您强迫它解析特定的模式,而不是猜测它.

标签:32-bit,datetime,php

来源: https://codeday.me/bug/20191208/2092155.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值