我正在設置一個基本的CMS,允許客戶將文章添加到他們的移動應用程序的中間。 CMS以PHP編碼,並將使用JSON將內容傳送到移動應用程序。strtotime日期驗證通過無效日期
現在我的問題是有一個選項發佈文章在某個日期,所以我想驗證日期以檢查它是有效的。
因此,爲了測試可能性,我製作了一個小腳本。我使用strtotime()
檢查日期是有效的,我的腳本是:
<?php
$date[] = '2011-31-01';
$date[] = '2011-02-31';
foreach($date as $str) {
if(strtotime($str) == false) {
$result[] = '<p>[' . $str . '] Resulted in an <span style="color: red;">Error.</span></p>';
} else {
$result[] = '<p>[' . $str . '] Resulted in <span style="color: green;">Success.</span></p>';
}
}
foreach($result as $return) {
echo $return;
}
?>
現在我的問題是日期2011-02-31
這是31st February 2011
正在恢復爲有效,當顯然事實並非如此。所以我的問題是爲什麼它會這樣做?有沒有更好的方法來檢查日期是否有效並存在?
在此先感謝。
[strtotime()將一個不存在的日期轉換爲另一個日期](http://stackoverflow.com/questions/7583579/strtotime-converts-a-non-existing-date-to-another-date) – hakre
'2011-01-31'被解析爲'31。 (對於我來說是正確的)...除此之外,'strtotime'並不是爲了驗證日期,而是試圖以最好的方式解析日期(不管它們的格式如何)。 – poke
@hakre這不是重複的,因爲我的問題與被轉換爲其他東西的日期無關。不管怎麼說,還是要謝謝你。 – RobFos