首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中处理1900年前的日期?

问如何在PHP中处理1900年前的日期?
EN

Stack Overflow用户
提问于 2010-03-16 02:09:17
回答 2查看 4.2K关注 0票数 9

我正在使用PHP和jQuery来建立一个交互式的时间表,需要显示之间的日期1500和2020年。在处理日期时,我通常使用PHP的strtotime函数,但它不适用于1900年前的日期。

日期将来自MySQL数据库,并被格式化为"January 31, 1654“之类的字符串(这可能不是理想的格式,但我不能更改它们的存储方式)。我使用PHP来解析日期,基本上将它们转换为像素值,这些像素值决定了它们在时间线上的显示位置。

解析这些历史日期的最简单方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-16 02:12:56

这里的DateTime类可能会有所帮助():

日期的每个组成部分(例如年份)都在内部存储为64位数字,因此支持所有可以想象的日期(包括负数年)。

但请注意:

  • 它只存在于>= 5.2
  • 中,而一些方法仅存在于PHP >= 5.3

中

因此:如果您在PHP5.3上开发,并希望您的软件与PHP5.2兼容,请注意您正在使用的方法

另一种解决方案(特别是在应用程序中使用Zend Framework的情况下)是Zend_Date组件(quoting):

尽管PHP5.2文档声明,“时间戳的有效范围通常是从星期五,1901年12月13日20:45:54 GMT到星期二,19 Jan 2038 03:14:07 GMT”,但Zend_Date在BCMath扩展

的帮助下支持几乎无限的范围

票数 9
EN

Stack Overflow用户

发布于 2018-03-15 20:29:31

使用精彩的Carbon Library,过去的日期不是问题:

代码语言:javascript
复制
$date = Carbon::now();
$date->subCenturies(23);
echo $date->format('Y-m-d');
  // -0282-03-15

这适用于人类曾经出现过的日期。对于其他任何事情,使用日期(带有日期和月份,在AC/BC范围内设置)没有多大意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2449380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档