使用strtotime进行日期转换时,我得到的结果不一致。
array [0]保存要转换的日期:
Original -> converted -> converted back
Array ([0] => 30.01.15) -> 1422576000 -> GMT: Fri, 30 Jan 2015 00:00:00 GMT
Array ([0] => 23.01.15) -> 1427925675 -> GMT: Wed, 01 Apr 2015 22:01:15 GMT
当使用破折号而不是点时,我得到:
Array ([0] => 30-01-15) -> 1894665600 -> GMT: Tue, 15 Jan 2030 00:00:00 GMT
Array ([0] => 23-01-15) -> 1673740800 -> GMT: Sun, 15 Jan 2023 00:00:00 GMT
它在第一个实例中使用点,但在第二个使用点我得到今天的日期?可能导致这种不一致的任何想法?
答案 0 :(得分:1)
根据PHP手册,日期和时间必须以支持的日期/时间格式提供:http://php.net/manual/en/datetime.formats.date.php
" dot"日期值似乎不支持表示法,因此PHP会尝试将其解析为时间,这就是为什么你得到这个"奇怪的"行为。
为了更好地解释不同的行为: 在第一次运行30中不能被解释为小时值,因此PHP尝试使用日期解析,在第二次运行中,23它是一个合理的小时值,所以它是时间。
"日,月和两位数年份,带点或标签"格式(dd [。\ t] mm"。" yy)仅适用于年份值61(含)到99(含) - 在这些年份之外的时间格式" HH [。: ] MM [。:] SS"优先
答案 1 :(得分:0)
看来PHP正在以不同的格式解释日期。
Array ([0] => 30.01.15) -> 1422576000 -> GMT: Fri, 30 Jan 2015 00:00:00 GMT
将日期读作DD.MM.YY
Array ([0] => 30-01-15) -> 1894665600 -> GMT: Tue, 15 Jan 2030 00:00:00 GMT
将日期读作YY-MM-DD
尝试将其更改为:
Array ([0] => 15-01-30)