2013-07-13 18 views
10

Ich habe Software, die bestimmen muss, ob die Cutoff-Datetime größer als 24 Stunden von jetzt ist. Hier ist der Code, den ich testen muss.PHP überprüfen, ob der Zeitstempel größer als 24 Stunden ist

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

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

Mein aktuelles Datum und Uhrzeit ist 2013-07-13 2am. Wie Sie sehen können, ist es nur 3 Stunden entfernt. Bei meiner Mathematik das ist 10800 Sekunden entfernt. Die Funktion, die ich habe, gibt yes zurück. Für mich ist dies der $date ist größer als jetzt plus 86400 Sekunden, wenn in der Tat seine nur 10800 Sekunden entfernt ist. Sollte das nicht no zurückgeben?

Antwort

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

sollten

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

See difference in this CodePad

+0

kann ich sehen, ist das Problem, dass das Datum und die Zeit ist, wie die Werte in der DB gespeichert sind. Sie werden als Datum und Uhrzeit gespeichert, ich kann sie nicht ändern. – Naterade

+1

@Naterade Ändern Sie sie nicht, verketten Sie sie. –

+2

Sie haben es geschafft, danke für die Hilfe! – Naterade

1

Speicher, um die Werte von Datum und Uhrzeit in separaten Variablen sein und in einen strtotime() mit Unix-Zeitstempel konvertieren, nachdem die Variablen verketten.

Code:

<?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 
} 
?> 
Verwandte Themen