我有一个以下字符串:
$time = "01/01/2015"; // format is m/d/Y
我想使用strtotime()函数将其转换为整数值,以便我可以将它与另一个日期进行比较。这是我将其转换为字符串后得到的整数值:
strtotime($time); // Gives me => int(1420092000)
我的问题:
查看上面的时间字符串格式,strtotime()函数如何知道字符串的格式是“m / d / Y”还是“d / m / y”?如果可能的话,我是否必须将strtotime()函数中的格式指定为第二个参数?
答案 0 :(得分:4)
正如strtotime的php.net手册所说:
注意:
通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。 为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。
所以,如果你使用斜杠分隔,它将假设月/日/年,如果你使用破折号或点,php将假设日 - 月 - 年。
答案 1 :(得分:0)
您不必指定strtotime()
的格式,而是使用/
,.
或-
指定格式。
作为手册的引用:
注意:m / d / y或d-m-y格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠(/),则假定为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。
但是如果你想看到这个函数的实现,可以在php github源代码中搜索它:https://github.com/php/php-src
以下是strtotime()
的实施:https://github.com/php/php-src/blob/master/ext/date/php_date.c#L1442