Php 将时间转换为mktime时的混乱

Php 将时间转换为mktime时的混乱,php,Php,我正在使用strotime函数将日期转换为时间戳,如 echo strtotime('4-5-2013'); 其结果为1367618400。这是正确的。我的问题是,如果日期的格式是mm dd yyyy,而不是dd mm yyyy,会发生什么情况。例如,同一日期是4月5日,而不是5月4日 strotime将其中包含-的字符串视为dd-mm-yyyy,/视为mm/dd/yyyy echo strtotime('5-4-2013');//Oupt puts 1367650800 echo

我正在使用
strotime
函数将日期转换为时间戳,如

    echo strtotime('4-5-2013');

其结果为1367618400。这是正确的。我的问题是,如果日期的格式是mm dd yyyy,而不是dd mm yyyy,会发生什么情况。例如,同一日期是4月5日,而不是5月4日

strotime将其中包含
-
的字符串视为
dd-mm-yyyy
/
视为
mm/dd/yyyy

echo strtotime('5-4-2013');//Oupt puts 1367650800

echo strtotime('4-5-2013');//Oupt puts 1367618400
4-5-2013
将于5月4日

4/5/2013
4月5日

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式


参考:

strotime将其中包含
-
的字符串视为
dd-mm-yyyy
,将
/
视为
mm/dd/yyyy

4-5-2013
将于5月4日

4/5/2013
4月5日

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式


参考:根据您的最新评论

你可以用

echo date("M-d-Y", mktime(0, 0, 0, 12, 31, 1997)); 

传递任何格式并使用mktime函数。

根据您的最新评论

你可以用

echo date("M-d-Y", mktime(0, 0, 0, 12, 31, 1997)); 

要传递任何格式并使用mktime函数。

很多时候,这可能是一种不可靠的日期格式,不同的读者可能会对其进行不同的解释。你应该改为使用文本月份。是否有任何经验法则或函数可以让我发送日期和日期的格式并获得正确的mktime。很多时候,这可能是一种不可靠的日期格式,不同的读者可能会有不同的解释。您应该使用文本月份。是否有任何经验法则或函数,我可以发送日期和日期的格式并获得正确的mktime。好的,我将此解决方案设置为“strOTIME(日期(“d-m-Y”,mktime(0,0,0,12,31,1997));”好的,我把这个解决方案称为“strotime(日期(“d-m-Y”,mktime(0,0,0,12,311997));”