2016-11-05 4 views
0

Ich haben diesen Zeitstempel aus der Datenbank 1496592689Tage, Stunden und miniutes in php verbleibenden

das Problem, das ich nicht wissen, ist, wie die verbleibenden Tage, Stunden und Minuten, um

aber ich habe diese Code unten

dies ist mein Variable aus, wo der Zeitstempel $db_user_timestamp

gespeichert und ich habe jetzt diese aktuelle Zeit jetzt $timenow = time();

Ich versuchte es mit

$remainingtime = $db_user_timestamp - $timenow; 

Aber ich weiß nicht, zu berechnen, wie es in den Tagen, Stunden und Minuten zu setzen.

Vielen Dank im Voraus für mich zu helfen :)

+0

Mögliches Duplikat [Subtrahieren Sie ein Datum und eine Uhrzeit von aktuellem Datum und Uhrzeit, um das Alter in PHP zu finden] (http://stackoverflow.com/questions/38718155/subtract-some-date-and-time-from-current-date-and-time- to-find-age-in-php) –

+0

Ich habe das versucht, aber es funktioniert nicht für mich. Es wird geladen. –

Antwort

1

Immer DateTime

$create_time = "1496592689"; 
$current_time = time(); 

$dtCurrent = DateTime::createFromFormat('U', $current_time); 
$dtCreate = DateTime::createFromFormat('U', $create_time); 
$diff = $dtCurrent->diff($dtCreate); 

$interval = $diff->format("%y years %m months %d days %h hours %i minutes %s seconds"); 
$interval = preg_replace('/(^0| 0) (years|months|days|hours|minutes|seconds)/', '', $interval); 

echo $interval; 
verwenden überprüfen

Ergebnis

6 months 30 days 5 hours 52 minutes 
+0

dieser eine funktionierte was ist die anforderung version der php diese zu verwenden? –

+0

'5.2.0'. Die Frage, die ich im Kommentar als Duplikat gepostet habe, liefert keine klare Antwort, sondern gibt einen Hinweis, und wenn Sie ein guter Programmierer sein wollen, müssen Sie Hinweise folgen, analysieren und recherchieren. Nicht jeder und nicht jedes Mal wird eine direkte Antwort geben. –

+0

Ok sorry, aber vielen Dank. –

1

Wenn Ihre PHP-Version 5.3 oder die neueste ist, sollten Sie http://php.net/manual/en/class.dateinterval.php und http://php.net/manual/en/datetime.diff.php

$datetime1 = new DateTime(date('Y-m-d H:i:s', $db_user_timestamp)); 
$datetime2 = new DateTime(date('Y-m-d H:i:s')); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%y years %m months %d days %h hours %m minutes %s seconds'); 
+0

dieser arbeitete auch Ich sah diesen Code, aber Sie änderten es und es ist jetzt in Ordnung. Vielen Dank. –

+0

führt zu "0 Jahren". Auch 'neue DateTime (Datum (' Y-m-d H: i: s ', $ db_user_timestamp)); 'ist einfach falsch. –

0

Verwendung des Datums ('M/d/Y H: i: s', $ theTimestamp); in Tag, Monat, Jahr, Stunde, Minute, Sekunde in der gewünschten Reihenfolge (ändern 'M/d/YH: i: s' die Zeichenfolge auf http://php.net/manual/en/function.date.php abhängig) wollen werden Sie Datum

2
<?php 
$db_user_timestamp = 1496592689; 
$difference = $db_user_timestamp - time(); 
echo "Day : ".$day = date('d',$difference); 
echo "<br>Hour : ".$hour = date('H',$difference); 
echo "<br>Minute : ".$minute = date('i',$difference); 
?> 
+0

Dies ist nützlich, aber nicht genau, es nicht das genaue Datum –

+0

"Datum" ist veraltet und sollte nicht mehr in OOP verwendet werden. Außerdem gibt es nicht immer ein genaues Intervall. –

+0

Ja irgendwann sein d-m-y-Format oder H: i: s-Format, aber wenn Benutzer wissen, welcher Zeitstempel verwendet wurde, dann ist es nützlich. –

Verwandte Themen