strtotime() 忽略 year 当日期在 PHP 中采用"Y, F j"格式时



我刚刚注意到,如果在"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

相关内容

  • 没有找到相关文章

最新更新