2013-07-13 115 views
10

我有軟件需要確定截止日期時間是否大於24小時。這是我必須測試的代碼。PHP檢查時間戳是否從現在開始大於24小時

$date = strtotime("2013-07-13") + strtotime("05:30:00"); 

if($date > time() + 86400) { 
    echo 'yes'; 
} else { 
    echo 'no'; 
} 

我的當前日期和時間是2013-07-13 2am。正如你可以看到它只有3個小時的路程。 在我的數學10800秒遠。我有的功能是返回yes。對我而言,這是說$date大於現在加上86400秒,實際上它只有10800秒。如果這不是返回no

回答

15
$date = strtotime("2013-07-13") + strtotime("05:30:00"); 

應該

$date = strtotime("2013-07-13 05:30:00"); 

See difference in this CodePad

+0

我可以看到,問題是,日期和時間是值的方式存儲在數據庫中。它們存儲爲日期和時間,我無法更改它。 – Naterade

+1

@Naterade不要改變它們,連接它們。 –

+2

你釘了它,謝謝你的幫助! – Naterade

1

存儲日期和時間值在不同的變量,並將其轉換爲串聯變量後使用strtotime() Unix時間戳。

代碼:

<?php 

$date = "2013-07-13"; 
$time = "05:30:00"; 

$timestamp = strtotime($date." ".$time); //1373673600 

if($timestamp > time() + 86400) { 
    echo 'yes'; 
} else { 
    echo 'no'; //outputs no 
} 

?> 
2
<?php 
date_default_timezone_set('Asia/Kolkata'); 

$date = "2014-10-06"; 
$time = "17:37:00"; 

$timestamp = strtotime($date . ' ' . $time); //1373673600 

// getting current date 
$cDate = strtotime(date('Y-m-d H:i:s')); 

// Getting the value of old date + 24 hours 
$oldDate = $timestamp + 86400; // 86400 seconds in 24 hrs 

if($oldDate > $cDate) 
{ 
    echo 'yes'; 
} 
else 
{ 
    echo 'no'; //outputs no 
} 
?>