我刚刚注意到,如果在"Y、 Fj";PHP中的format-then-strtotime((函数在将年份转换为Unix时间戳时忽略年份,并始终返回带有当前年份的时间戳
例如,让我们取两个月和日期相同但年份不同的日期,并通过strtotime函数运行它们
strtotime("2021年10月8日"(=1665260460
strtotime(2014年10月8日(=1665260040
正如你所看到的,上面的日期相隔7年,但它们的时间戳是相同的,如果你试图将时间戳转换为具有相同"日期"的人类日期;Y、 Fj";格式,然后返回2022年10月8日。
我试图寻找合理的解释,但找不到。有人知道为什么strtotime((在这种特定的日期格式下表现得很奇怪吗?如果我不能使用strtotime((,那么可能的解决方案是什么
Deceze已经回答了strtotime无法识别日期的原因,如果在"Y、 Fj";总体安排(没有什么是完美的,想象一下,如果你是编写strtotime PHP函数的人,那么你应该明白它无法识别你扔给它的所有东西(
你问了还有什么可能的解决方案
请使用(j F Y(年月日(我的意思是:2021年10月8日、2014年10月18日等(
所以代码是:
<?php
echo(strtotime("8 October 2021") . "n");
echo(strtotime("8 October 2014") . "n");
?>
但是,如果你有像";2021年10月8日";,只需进行简单的数据解析;jFY";,然后转到strtotime。(简单,对吧?(
沙盒:https://onlinephp.io/c/9f8ea