web-dev-qa-db-de.com

PHP: Sekunden zu einem Datum hinzufügen

Ich habe $adate; was enthält:

Tue Jan 4 07:59:59 2011

Ich möchte zu diesem Datum folgendes hinzufügen:

$duration=674165; // in seconds

Sobald die Sekunden hinzugefügt sind, brauche ich das Ergebnis wieder in das Datumsformat.

Ich weiß nicht, was ich mache, aber ich bekomme seltsame Ergebnisse.

Hinweis: Beide Variablen sind dynamisch. Jetzt sind sie den angegebenen Werten gleich, aber bei der nächsten Abfrage haben sie andere Werte.

30
user523129

Wenn Sie PHP 5.3 oder höher verwenden, können Sie eine neue Methode verwenden.

<?php 
$date = new DateTime();
echo $date->getTimestamp(). "<br>";
$date->add(new DateInterval('PT674165S')); // adds 674165 secs
echo $date->getTimestamp();
?>
65
Elzo Valugi

Verwenden Sie einfach einige Nice PHP Datums-/Zeitfunktionen:

$adate="Tue Jan 4 07:59:59 2011";
$duration=674165;
$dateinsec=strtotime($adate);
$newdate=$dateinsec+$duration;
echo date('D M H:i:s Y',$newdate);
23
DiglettPotato

Da $adate ein Zeitstempel ist (wenn dies der Fall ist), könnten Sie Folgendes tun:

$duration = 674165;
$result_date = strtotime(sprintf('+%d seconds', $duration), $adate);
echo date('Y-m-d H:i:s', $result_date);
11
ncuesta
// add 20 sec to now
$duration = 20;
echo date("Y-m-d H:i:s", strtotime("+$duration sec"));
2
Kristian

Mach das:

$seconds = 1;
$date_now = "2016-06-02 00:00:00";

echo date("Y-m-d H:i:s", (strtotime(date($date_now)) + $seconds));
2
user1211927

Ich habe Probleme mit strtotime(), um mein Problem mit addiere dynamische Daten/Zeitwerte in der aktuellen Zeit zu lösen

Das war meine Lösung:

$expires = 3600; //my dynamic time variable (static representation here)
$date = date_create(date('Y-m-d H:i:s')); //create a date/time variable (with the specified format - create your format, see (1))
echo date_format($date, 'Y-m-d H:i:s')."<br/>"; //shows the date/time variable without add seconds/time
date_add($date, date_interval_create_from_date_string($expires.' seconds')); //add dynamic quantity of seconds to data/time variable
echo date_format($date, 'Y-m-d H:i:s'); //shows the new data/time value

font: https://secure.php.net/manual/de/datetime.add.php (Siehe auch Objektorientierter Stil, die Lösung Elzo Valugi).

(1) https://secure.php.net/manual/de/function.date.php

0
Carlos Rafael

Ich habe dieses Beispiel für eine Zeitzone erstellt, aber wenn Sie einige Teile ändern, kann es Ihnen helfen:

$seconds_to_add = 30;
$time = new DateTime();
$time->setTimezone(new DateTimeZone('Europe/London'));
$time2 = $time->format("Y/m/d G:i:s");
$time->add(new DateInterval('PT' . $seconds_to_add . 'S'));
$timestamp = $time->format("Y/m/d G:i:s");
echo $timestamp;
echo '========';
echo $time2;

Ergebnis:

2018/06/17 3:16:23========2018/06/17 3:15:53
0
$current_time_zone = 150;
date("Y-m-d H:i:s",strtotime(date("Y-m-d H:i:s"))+$current_time_zone);
0
Jayesh Paunikar