我正在使用PHP和jQuery来建立一个交互式的时间表,需要显示之间的日期1500和2020年。在处理日期时,我通常使用PHP的strtotime函数,但它不适用于1900年前的日期。
日期将来自MySQL数据库,并被格式化为"January 31, 1654“之类的字符串(这可能不是理想的格式,但我不能更改它们的存储方式)。我使用PHP来解析日期,基本上将它们转换为像素值,这些像素值决定了它们在时间线上的显示位置。
解析这些历史日期的最简单方法是什么?
发布于 2010-03-16 02:12:56
这里的DateTime类可能会有所帮助():
日期的每个组成部分(例如年份)都在内部存储为64位数字,因此支持所有可以想象的日期(包括负数年)。
但请注意:
中
因此:如果您在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扩展
的帮助下支持几乎无限的范围
发布于 2018-03-15 20:29:31
使用精彩的Carbon Library,过去的日期不是问题:
$date = Carbon::now();
$date->subCenturies(23);
echo $date->format('Y-m-d');
// -0282-03-15这适用于人类曾经出现过的日期。对于其他任何事情,使用日期(带有日期和月份,在AC/BC范围内设置)没有多大意义。
https://stackoverflow.com/questions/2449380
复制相似问题