Tworzenie znaczników czasu w PHP przy użyciu time()
;Jak obliczyć różnicę czasu między znacznikami czasu unix?
Mam $current_time
i $purchase_time
. Jak upewnić się, że czas_zakupu jest krótszy niż 24 godziny bieżącego czasu?
Tworzenie znaczników czasu w PHP przy użyciu time()
;Jak obliczyć różnicę czasu między znacznikami czasu unix?
Mam $current_time
i $purchase_time
. Jak upewnić się, że czas_zakupu jest krótszy niż 24 godziny bieżącego czasu?
Ponieważ znaczniki czasu UNIX to tylko liczba sekund, wystarczy użyć różnicę:
$purchasedToday = $current_time - $purchase_time < 24 * 60 * 60;
if ($purchasedToday) {
echo 'You just bought the item';
} else {
echo 'You bought the item some time ago';
}
Jeśli są znaczniki czasu UNIX, a następnie można obliczyć ten sam naprawdę łatwe, ponieważ są one sekund.
$seconds = $current_time - $purchase_time
$hours = floor($seconds/3600);
if ($hours < 24){
//success
}
+1 To bardzo eleganckie rozwiązanie. Niesamowity sos. – ehime
musiałem użyć czegoś takiego:
<?php
if(date("U", strtotime("-24 hours", $current_time) > date("U", $purchase_time)) {
echo "More then 24 hours you purchased this radio";
}
?>
ta działa nawet wtedy, gdy znacznik czasu nie jest UNIX-timestamp.
Można skonstruować DateTime obiekt, a następnie wykorzystywać to diff() sposób obliczyć różnicę między $ current_time i $ purchase_time:
$currentTime = new DateTime();
$purchaseTime = new DateTime('2011-10-14 12:34:56');
// Calculate difference:
$difference = $currentTime->diff($purchaseTime);
if ($difference->days >= 1) {
echo 'More than 24 hours ago.';
}
To jest bardziej niezawodny niż obliczenie różnicy siebie, jako metoda ta zajmuje strefy czasowe i czas letni.
coś takiego:
$difference=time() - $last_login;
Dzięki, że pracował :) – kht