簡體   English   中英

在PHP中使用strtotime()比較兩個日期

[英]Comparing two Dates using strtotime() in PHP

我有兩個變量,包含格式的日期字符串

$four_days_have_passed = "07-14-2013";
$now = "07-10-2013";

我檢查了FirePHP中的輸出,日期是正確的。

然后我試着像這樣比較它們,

if (strtotime($now) < strtotime($four_days_have_passed))
{
  Do Stuff
}

為什么IF語句中的代碼永遠不會執行?

如果你想使用MM / DD / YYYY格式,你需要/分隔符。

$four_days_have_passed = "07/14/2013";
$now = "07/10/2013";

從手冊 : -

通過查看各個組件之間的分隔符來消除m / d / y或dmy格式的日期:如果分隔符是斜杠(/),則假設為美國m / d / y; 而如果分隔符是破折號( - )或點(。),則假定為歐洲dmy格式。

格式(如果使用的話)是DD-MM-YYYY。 沒有第14個月。

我看到你接受了答案,但只是為了確保你理解。 有兩種情況可以解析日期。

  1. 美國 - 月/日/年
  2. 歐洲 - day.month.year或day-month-year

您有錯誤,因為您提供了歐洲格式"07-14-2013"而且一年中沒有14個月。

適合您的格式之一是:

  • 14-07-2013 - 歐洲
  • 14.07.2013 - 歐洲
  • 07/14/2013 - 美國人

Morover,為了比較數據時間,最好使用面向對象的解決方案和DataTime對象。 你可以在這里閱讀更多

strtotime()函數的情況是使用yyyy-mm-dd格式處理的最簡單方法。 這是db date中的正常格式。 如果您使用此格式幫助輕松比較兩個日期。

在歐洲,特別是在法國,我們也使用斜杠分隔符這種格式:

day/month/year

法國約會的例子:26/08/2019

暫無
暫無

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

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