我知道 php strtotime() 函数并不是所有日期时间格式的答案。然而,我在下面描述的这种行为是非常危险的,因为它会让你相信它实际上正在工作,而实际上它实际上并没有:
用户告诉我她正在从下拉菜单中输入日期格式。我以字符串形式获取该日期,然后在其上运行 strtotime()。通常这很有效,但这里有一些陷阱:
//year 1999
$timedate = "1999"; //string from the form marked as datetime
$utime = strtotime($timedate); //Unixtime format
// Now check the results .. they are correct
echo "Raw TimeDate = $timedate. After calling strtotime() it is ".$utime." UnixTimeStamp or ". date( "Y-m-d : H:i:s", $utime)."<br/>";
//year 2000
$timedate = "2000";
$utime = strtotime($timedate); //WRONG ANSWER!!!!
echo "Raw TimeDate = $timedate. After calling strtotime() it is ".$utime." UnixTimeStamp or ". date("Y-m-d : H:i:s",$utime)."<br/>";
当给 strtotime 的数字不明确时,就会发生这种情况。strtotime() 倾向于将其仅解析为 TIME(如 20 小时和 00 分钟)而不是 DATE 年 2000,这与它对字符串“1999”所做的相反这里没有问题,这只是一个注意事项