簡體   English   中英

strtotime轉換不一致

[英]Inconsistent strtotime conversions

使用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

它在第一個實例中使用點,但是在第二個實例中使用點,我得到了今天的日期? 有什么想法可能導致這種不一致?

根據PHP手冊,日期和時間必須以受支持的日期/時間格式提供: http : //php.net/manual/en/datetime.formats.date.php

日期值似乎不支持“點”表示法,因此PHP嘗試將其解析為時間,這就是為什么您會獲得這種“奇怪”行為的原因。

為了更好地解釋不同的行為:在第一次運行中,不能將30解釋為小時值,因此PHP嘗試使用日期解析,在第二次運行中,它嘗試使用23是一個合理的小時值,因此需要花費時間。

“帶點或制表符的日,月和兩位數年份”格式(dd [。\\ t] mm“。” yy)僅適用於年份值61(含)至99(含)-在這些年份之外的時間格式“ HH [。:] MM [。:] SS”優先

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM