如何在PHP中使用1900年之前的日期?

shi*_*ape 9 php date unix-timestamp

我使用PHP和jQuery构建一个交互式时间轴,需要显示1500到2020之间的日期.我strtotime在处理日期时通常使用PHP的功能,但它不适用于1900年以前的日期.

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

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

Pas*_*TIN 9

DateTime这里的课可能会有所帮助(引用):

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


但请注意:

  • 它仅存在于PHP> = 5.2中
  • 并且几种方法仅存在于PHP> = 5.3中

所以:要注意你正在使用哪些方法,如果你在PHP 5.3上开发并希望你的软件与PHP 5.2兼容


另一个解决方案(特别是,如果在您的应用程序中使用Zend Framework)将是Zend_Date组件(引用):

虽然PHP 5.2文档指出,"时间戳的有效范围通常是从格林威治标准时间1901年12月13日20:45:54到格林威治标准时间2038年3月19日03:14:07," Zend_Date支持几乎无限的范围,在帮助下BCMath扩展