[英]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.