我尝试这样做 echo date("Y", strtotime("1999-00-00"));
但它返回的不是 1999
1998
.有办法处理这个吗?我更喜欢“干净的方式”,而不是像 $finalYear = (float)$year+1
等。
日期格式必须是 YYYY-00-00
(带零)
最佳答案
如果您绝对确定日期的格式永远不会改变,您最好使用
echo substr('1999-00-00', 0, 4);
而不是招致 strtotime() 的沉重开销并在整个日期/时间子系统中往返。
当您告诉 PHP 的日期函数月/日为 0(“无效”)时,它会将这些值转换为适当的“先前”值。
例如
1999-00-10 is actually 1998-12-10
1999-11-00 is actually 1999-10-31
等等。这就像在说“昨天”或“上个月”。类似地,指定第 13 个月就可以了
1999-13-01 is actually 2000-01-01
关于php - date() 仅从日期格式 YYYY-00-00 开始的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9419179/