Ich verwende PHP strtotime und MySQL datetime für einen einfachen Countdown bis zu einem bestimmten Datum.

Ich benutze auch jQuery zum Countdown.

Meine jquery strtotime Zeit ist wie folgt: 1443661380000

Wenn ich meinen JQuery-Countdown ohne PHP starte, funktioniert er einwandfrei und zählt ordnungsgemäß herunter.

Wenn ich jedoch mysql datetime und php strtotime wie folgt verwende: $long = strtotime("$fes_events_date"); funktioniert mein jquery-Countdown nicht mehr.

Also habe ich versucht, die jquery strtotime umzukehren, die 1443661380000 ist, damit ich sehen kann, wie sie aussieht, falls mir etwas in meiner PHP-Strtotime fehlt.

Also habe ich das gemacht:

    $hin = date("Y-m-d H:i:s", 1443661380000);
echo $hin;

Und die Ausgabe davon ist etwas Seltsames, das das Folgende ist:

47717-10-22 18:00:00

Die Frage, die ich habe, lautet also: Wie kann ich meine datetime mysql mit php strtotime konvertieren, damit ich die gleiche Art von Ausgabe erhalte, damit mein jquery-Countdown funktioniert?

Jede Hilfe wäre dankbar.

1
H.HISTORY 11 Aug. 2015 im 20:17

3 Antworten

Beste Antwort

Beachten Sie, dass das Messen von UNIX / Epoch Time normalerweise auf zwei Arten erfolgt, entweder in Sekunden oder in Millisekunden seit January, 1 1970.

Es scheint mir, dass Sie eine Zeit in Millisekunden haben, während die Funktion, die Sie verwenden möchten, diese wie in Sekunden konvertiert, sodass Sie um den Faktor 1000 versetzt sind.

Tauchen Sie Ihre Zeit um 1000 und geben Sie sie dann an den Konverter weiter.

1000ms/1000 = 1s
1443661380000ms / 1000 = 144366138s

144366138s -> Date -> GMT: Thu, 01 Oct 2015 01:03:00
1
Matt Clark 11 Aug. 2015 im 17:46

Der Unix-Zeitstempel, das zweite Argument für die Funktion date, gibt die Anzahl der Sekunden seit dem 1. Januar 1970 an.

Aus Gründen, die den Nebeln der Geschichte verloren gehen, gibt der Javascript-Zeitstempel die Anzahl der Millisekunden seit der Unix-Epoche an. Die PHP strToTime -Funktion erkennt das nicht und kann ihre Magie nicht ausüben. Sie müssen Ihre Millisekunden manuell in Sekunden konvertieren.

$hin = date("Y-m-d H:i:s", (1443661380000/1000));
echo $hin;
2
Alan Storm 11 Aug. 2015 im 18:31

Versuche zu ändern,

$hin = date("Y-m-d H:i:s", 1443661380000);

Zu

$mil=1443661380000;
$seconds = $mil / 1000;
$hin = date("Y-m-d H:i:s", $seconds);
2
sriharichander 11 Aug. 2015 im 17:24