我想将日期24/09/2010
格式转换dd/mm/yyyy
为2010-09-24
格式yyyy-mm-dd
。
这有效:
date("Y-m-d",strtotime("09/24/2010"));
但这不会:
date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01'
知道为什么吗?
我想将日期24/09/2010
格式转换dd/mm/yyyy
为2010-09-24
格式yyyy-mm-dd
。
这有效:
date("Y-m-d",strtotime("09/24/2010"));
但这不会:
date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01'
知道为什么吗?
strtotime
当给定一个字符串时,它会尽力猜测你的意思,但它不能处理所有的日期格式。在您的示例中,它可能认为您正在尝试引用无效的第 24 个月,并返回 0,然后将该日期视为 unix 纪元(您获得的日期)。
您可以使用mktime()和explode()函数来解决这个问题,如下所示:
$date = "24/09/2010";
$dateArr = explode("/",$date);
$timeStamp = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
$newFormat = date("Y-m-d",$timeStamp);
根据 php,此处说明了有效的 php 格式。所以基本上你给的东西是无效的。
或者,您可以使用mktime、date_parse_from_format或date_create_from_format
正如你所说, date("Ymd",strtotime("09/24/2010")) 会起作用,因为日期格式——“09/24/2010”是正确的,但“24/09/2010”不是正确的日期格式。你可以在这里找到有用的东西