两个日期都是字符串,但strtotime失败

时间:2013-11-19 19:32:07

标签: php date

因此,当我var_dump $startTime$endTime时,我会收到以下信息:string(10) "11-01-2013" string(10) "11-21-2013"

很棒,两个字符串,让我们通过执行以下操作来转换它们:

var_dump(strtotime($startDate), strtotime($endDate)); exit;

我们得到了什么:

int(1357887600) bool(false)
嗯....这不对,他们都是字符串,他们都格式正确......

1 个答案:

答案 0 :(得分:9)

来自the docs

  

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

     

为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。

因为你正在使用破折号,所以它试图使用欧洲格式d-m-y,在这种情况下11-21-2013无效。