簡體   English   中英

如何使用PHP的strtotime

[英]How to use PHP's strtotime

我是PHP新手,並且在基礎方面有點掙扎,請原諒可怕的代碼。

我想做的是解析從XML文件檢索到的日期,並查看該日期是否在星期一/星期二/等日期。

我似乎做得不好,非常感謝您的幫助。

<?php

    foreach ($xml as $x)
    {
        $time = strtotime($x->Start);
        echo $time;

       if(date('D', $time) === 'Mon') 
           echo "Booking for Monday";
       else if(date('D', $time) === 'Tue') 
           echo "Booking for Tuesday";
       else if(date('D', $time) === 'Wed')
          echo "Booking for Wednesday"; 
       else if(date('D', $time) === 'Thu')
          echo "Booking for Thursday"; 
       else if(date('D', $time) === 'Fri')
          echo "Booking for Friday";
   }

?>

$ time不會輸出任何內容,並且返回的唯一結果是每個XML記錄(x5)的“預定星期四”,盡管只有兩個記錄在星期四掉了。

如果我通過以下方式輸出結果:

echo $x->Start;

效果很好,並輸出“ 15/07/2013 9:30:00 am”。

干杯!

該日期看起來像European format dmy並使用American format m/d/y分隔符。

注意:

通過查看各個組成部分之間的分隔符,可以消除m / d / y或dmy格式的日期的歧義:如果分隔符為斜杠(/),則假定為美國m / d / y; 相反,如果分隔符是破折號(-)或點(。),則采用歐洲dmy格式。

代替

$time = strtotime($x->Start);

嘗試

$time = strtotime(str_replace('/','-',$x->Start));

附加信息: PHP手冊

您必須先將時間字符串($ x-> Start)轉換為支持的格式之一,然后再將其傳遞給strtotime。

用代替。 會將您的日期更改為支持格式。 但請仔細檢查以確保。

$time = strtotime(str_replace('/', '.',$x->Start));

我看到您已經有了一個可以接受的答案,但是我強烈建議您看一下PHP的DateTime類 它們非常有用,可以使看似復雜的日期操作變得微不足道。

在您的特殊情況下,我將替換:

$time = strtotime($x->Start);

用: -

$time = \DateTime::createFromFormat('d/m/Y H:i:s a', $x->Start);

然后,您可以使用\\DateTime::format()方法設置\\DateTime::format()

暫無
暫無

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

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