我知道 php mktime()、32 位系统和年份 <1901 或 >2038 存在问题,但是,我的问题是,如果在 64 位系统上运行,这个问题是否仍然存在?
我使用了这里提到的代码并确定我的主机运行的是 64 位系统。
我从以下格式的用户输入中收集日期:
$m = 用户选择的月份(2 位数);$d = 用户选择的日期(2 位数);$y = 用户选择的年份(4 位数字)
这是我用来将输入日期转换为 unix 时间戳的代码:
$npt_date=mktime(0,0,0,$m,$d,$y);
然后代码以基本格式 xx-xx-xxxx 重新显示日期
$date_str=date('m-d-Y',$npt_date);
该代码适用于日期 > 1901,但是,当 $y < 1901 时,date() 函数的输出返回不正确的日期。
任何关于我做错了什么的建议,如果这甚至可以使用 mktime() 和 date() 函数和/或可能的解决方法,将不胜感激。
提前致谢。