因此,当我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)
嗯....这不对,他们都是字符串,他们都格式正确......
答案 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
无效。