我想将格式24/09/2010
的日期dd/mm/yyyy
格式转换为格式为2010-09-24
的{{1}}。
这有效:
yyyy-mm-dd
但这不是:
date("Y-m-d",strtotime("09/24/2010"));
知道为什么吗?
答案 0 :(得分:2)
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);
答案 1 :(得分:2)
根据php,有效的php格式是here。所以基本上你给的是无效的。
或者,您可以使用mktime,date_parse_from_format或date_create_from_format
答案 2 :(得分:0)
正如你所说, 日期( “Y-M-d”,的strtotime( “2010年9月24日”)) 会有效,因为日期格式 - “09/24/2010”是正确的, 但“24/09/2010”不是正确的日期格式。 你可以找到有用的东西here