Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以dd/mm/yyyy格式指定日期时,strotime()未返回正确的值_Php_Date Format - Fatal编程技术网

Php 以dd/mm/yyyy格式指定日期时,strotime()未返回正确的值

Php 以dd/mm/yyyy格式指定日期时,strotime()未返回正确的值,php,date-format,Php,Date Format,我想将格式为dd/mm/yyyyy的日期2010年9月24日转换为格式为yyy-mm-dd的日期2010年9月24日 这项工作: date("Y-m-d",strtotime("09/24/2010")); 但这并不是: date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01' 知道为什么吗?strotime在给定一个字符串时,尽可能猜测您的意思,但它不能处理所有的日期格式。在您的示例中,它可能认为您试图引用第24个月

我想将格式为
dd/mm/yyyyy
的日期
2010年9月24日
转换为格式为
yyy-mm-dd
的日期
2010年9月24日

这项工作:

date("Y-m-d",strtotime("09/24/2010"));
但这并不是:

date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01'

知道为什么吗?

strotime
在给定一个字符串时,尽可能猜测您的意思,但它不能处理所有的日期格式。在您的示例中,它可能认为您试图引用第24个月,这是无效的,并返回0,然后将该日期视为unix纪元(您得到的日期)

您可以使用和函数解决此问题,如下所示:

$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格式。所以基本上你给的是无效的

或者,您可以使用,或者您所说的, 日期(Y-m-d),标准时间(2010年9月24日) 将起作用,因为日期格式--“09/24/2010”是正确的, 但是“24/09/2010”不是正确的日期格式。 你可以找到有用的东西