你好,我想找到今天和另一個日期間的strtotime今天
轉換當天的日期到這裏
<?php
echo '1st one'.strtotime(date("d.m.Y")).'<br>';
echo '2nd one'.strtotime(date("m.d.Y")).'<br>';
?>
UNIX時間格式的第一回波生產一些價值的差額,但不是第二個。什麼是它的bug ......請幫助..
你好,我想找到今天和另一個日期間的strtotime今天
轉換當天的日期到這裏
<?php
echo '1st one'.strtotime(date("d.m.Y")).'<br>';
echo '2nd one'.strtotime(date("m.d.Y")).'<br>';
?>
UNIX時間格式的第一回波生產一些價值的差額,但不是第二個。什麼是它的bug ......請幫助..
strtotime
根據您給出的date format作出假設。例如
date("Y-m-d", strtotime(date("d.m.Y"))) //=> "2010-09-27"
date("Y-m-d", strtotime(date("m.d.Y"))) //=> "1969-12-31"
注意,對於1969-12-31 19:00:00給出一個無效的日期,默認的strtotime的時間戳的時候,所以當你最終在1969年意想不到的日期,你知道你」重新使用無效日期。
因爲strtotime
正在尋找day.month.year當您使用.
作爲分隔符,所以它將「9.27.2010」看作27個月的第9天,這顯然不存在。
但是,如果你改變它使用/
作爲分隔符:
date("Y-m-d", strtotime(date("d/m/Y"))) //=> "1969-12-31"
date("Y-m-d", strtotime(date("m/d/Y"))) //=> "2010-09-27"
在這種情況下,strtotime
預計月/日/年格式的日期。
如果你想要安全,Y-m-d通常是一個很好的使用格式。
+1,Thanku作爲詳細說明。我很欣賞你的教學方式。 – satya 2010-09-27 15:25:33
當然,很樂意提供幫助。 – 2010-09-27 15:25:55
strtotime
不考慮09.27.2010
是一個有效的日期......
你可以檢查它像這樣:
<?php
// will return false (as defined by the docs)
echo var_dump(strtotime("09.27.2010"));
?>
功能預計會得到一個包含美國英語日期格式的字符串,並將嘗試將該格式解析爲Unix時間戳。美國時間格式爲:MM DD YYYY
Hallo Stewie,在我的第二個回聲中,我想將今天的日期轉換爲unix格式。所以我用echo'2nd one'.strtotime(date(「m.d.Y」))。''
'; MM.DD中的:YYYY。這是美國日期格式。但是爲什麼回聲仍然沒有輸出任何值? –
satya
2010-09-27 15:08:03
@ user453893看看我的答案。雖然*你*知道你給的格式,PHP必須猜測,所以有關各種日期格式的規則。當你使用一個點作爲分隔符時,它把它當作d.m.Y. – 2010-09-27 15:12:27
如果您使用DD MM YY,請使用短劃線( - )或點(。)。如果使用美國日期格式MM DD YYYY,請使用斜槓(/) – Stewie 2010-09-27 15:16:04
尋找有關哪些格式有效的信息http://www.php.net/manual/en/datetime.formats.php。但是,對於兩個日期之間的順從,你的意思是什麼?你的意思是2個日期之間的時間跨度?
echo (time() - strotime("- 2 days")) . " seconds difference";
這樣的事情?
我的意思是今天和給定日期之間的差異。 – satya 2010-09-27 15:35:34
值得指出的是,strtotime()
確實接受諸如「today」這樣的詞作爲有效輸入,所以如果您想要的只是今天的日期,則不需要在該處輸入對date()的調用。你可以使用strtotime('today');
。
想想吧,簡單的撥打電話time();
也會得到當前的時間戳。
但實際上回答這個問題,你需要考慮d.m.Y
和m.d.Y
曖昧 - 若每月天數小於12,這是不可能分辨出哪的這兩個日期格式之意。因此,PHP只接受其中一個(我相信它使用m/d/Y,如果你有斜線,但是對於點或破折號,它假設爲dmY。
如果你在內部使用strtotime()來轉換日期格式等,幾乎肯定有更好的方法來做到這一點。但是如果你真的需要這樣做,那麼使用'Y-m-d'
格式,因爲它更加普遍可靠。另一方面,如果您接受用戶的日期輸入,並假定strtotime()將處理拋出的任何內容,那麼很遺憾,您錯了; strtotime()有一些相當大的限制,其中你找到了一個。但還有一些其他的。如果你打算爲這種事情使用strtotime(),那麼你還需要做額外的處理。也可能有更好的選擇,例如使用前端Javascript日期控件來讓用戶更容易,而不必依賴strtotime()來計算它們的含義。
+1,用於提示替代方法。 – satya 2010-09-27 15:31:52
strtotime不會採用d.m.y格式。好的方法是Y-m-d
strtotime限於幾種日期格式。 – 2010-09-27 15:01:01