我必須做一個檢查,如果它已經超過了某個時間和日期。 通常這對我來說很容易,但是必須檢查的時間是從數據庫中獲得的時間的半小時。它是否已經過計算時間和日期?
比方說數據庫說:「2014-01-16」和「20:00」。在這種情況下,我必須檢查它是否已經過去2014年1月16日的「21:30」。
我現在有一些代碼爲我工作,但它只是說它已經過去了,如果日期和時間時間已經過去了(假設它是在明顯通過之後的一天,它也必須在21:30之後才能這麼說)。
這裏是我到目前爲止的代碼:
// Get the date today and date of the event to check if the customer can still buy tickets
$dateToday = strtotime(date('Y-m-d'));
// $details['Datum'] == 2014-01-15
$dateStart = strtotime($details['Datum']);
// Check if it's half an hour before the event starts, if so: don't sell tickets
$timeNow = strtotime(date('H:i'));
// $details['BeginTijd'] == 20:00
$substrStart = substr($details['BeginTijd'], 0, 5);
$startTimeHalfHour = strtotime($substrStart) - 1800;
if($timeNow > $startTimeHalfHour && $dateToday >= $dateStart) {
// It's past the given time limit
$tooLate = true;
} else {
// There's still time
$tooLate = false;
}
正如你所看到的,它需要的時間和日期是過去的規定限度。在這個例子中,如果它已經過了15日,它應該將$ tooLate設置爲true,或者如果它已經過了15日的21:30。
但我需要時間爲事件開始 - 30分鐘,而不是當前時間+30。在這種情況下會是什麼時間? – user1433479
那麼最終的結果是一樣的。您可以檢查當前時間+30分鐘,或者事件時間減去30.邏輯相同。但是如果你真的想要事件+30,我也將這一點加入到我的答案中。 –
謝謝,這完美的作品:)。我有舊的$ dateToday = strtotime(日期('Y-m-d'));因爲我不擅長日期/時間計算,所以我查了一下如何在線。當您使用不同的資源時,代碼可能會變得混亂。 – user1433479