假設我有以下日期/日期時間。我怎樣才能最好地告訴哪些人在午夜(即時間是00:00:00)?第一個不應該是午夜,但接下來的三個應該是。由於Tell是PHP的DateTime是午夜
$d1=new DateTime('12/10/2012 05:33');
$d2=new DateTime('12/10/2012');
$d3=new DateTime('12/10/2012 00:00');
$d4=new DateTime('12/10/2012 00:00:00');
假設我有以下日期/日期時間。我怎樣才能最好地告訴哪些人在午夜(即時間是00:00:00)?第一個不應該是午夜,但接下來的三個應該是。由於Tell是PHP的DateTime是午夜
$d1=new DateTime('12/10/2012 05:33');
$d2=new DateTime('12/10/2012');
$d3=new DateTime('12/10/2012 00:00');
$d4=new DateTime('12/10/2012 00:00:00');
檢查小時和分鐘都爲零:
if($date->format('H') == 0 && $date->format('i') == 0) {
echo "Midnight!";
}
你可以用正則表達式或類型轉換檢查相關部件是否只包含0:
$string = $dateTime->format('Hisu');
$isMidnight = preg_match('/^0+$/usD', $string);
$isMidnight = !(int) $string;
你可以用格式設定粒度,所以
Hisu
精確到微秒,His
精確到秒,Hi
精確到分鐘,H
精確到小時。您必須指定時區,並使用日期時間
$test = new DateTime('NOW', new DateTimeZone('Asia/Kolkata'));
$h=$test->format('H');
$m=$test->format('i');
$s=$test->format('s');
if($h == 0 && $m==0 && $s == 0) {
echo "Midnight!";
}
感謝nickb。我也想要第二個,但這顯然是你的解決方案。它可以(而且應該)一次完成所有的東西,像$ date-> format('H i s')=='00 00 00'? – user1032531
或者是否有某種只返回時間部分的getTime()方法,如果零是午夜? – user1032531
不,沒有什麼像getTime():http://php.net/manual/en/class.datetime.php –