Konvertieren Sie ein Datumsformat in PHP [duplicate]

Lesezeit: 4 Minuten

Konvertieren Sie ein Datumsformat in PHP duplicate
Matthie

Ich versuche, ein Datum von zu konvertieren yyyy-mm-dd zu dd-mm-yyyy (aber nicht in SQL); Ich weiß jedoch nicht, wie die Datumsfunktion einen Zeitstempel benötigt, und ich kann aus dieser Zeichenfolge keinen Zeitstempel erhalten.

Wie ist das möglich?

  • tt-mm-jjjj ist das Standardformat in (meistens) Europa, zumindest wenn Sie Benutzern Daten präsentieren müssen.

    – Matteo Riva

    21. März 2010 um 17:23 Uhr

  • tt-mm-jjjj auch in Australien und Neuseeland

    – Jonathan-Tag

    3. Dezember 2011 um 12:45 Uhr

  • MM-TT-JJJJ in den USA. @stesch: Ersteres ist Standard in SQL. Ich bin mir nicht sicher Standard in irgendeinem Land. 🙂

    – Herbert

    15. Dezember 2011 um 6:38 Uhr

  • Eigentlich die Standard ist jjjj-mm-tt wie gem ISO 8601.

    – Jezen Thomas

    1. März 2013 um 7:43 Uhr

  • Der globale “Standard” ist JJJJ-MM-TT und sollte nach Möglichkeit immer von Systemen verwendet werden. Die Reihenfolge Tag, Monat, Jahr wird von Menschen in den meisten Teilen der Welt (außer den USA) verwendet, aber normalerweise mit Schrägstrichen, nicht mit Bindestrichen. Um Verwirrung zu vermeiden, trenne ich JJJJ-MM-TT nur mit Bindestrichen. Jedes andere Datumsformat werde ich mit Schrägstrichen trennen. Dies hält die Dinge konsistent.

    – rjmunro

    12. März 2013 um 11:49 Uhr

Konvertieren Sie ein Datumsformat in PHP duplicate
Richsage

Verwenden strtotime() und date():

$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));

(Siehe die strtotime und Datum Dokumentation auf der PHP-Seite.)

Beachten Sie, dass dies eine schnelle Lösung für die ursprüngliche Frage war. Für umfangreichere Konvertierungen sollten Sie unbedingt die verwenden DateTime Klasse zum Parsen und Formatieren 🙂

  • Was ist, wenn ich dieses Datum 0000-00-00 von mySQL erhalte? es gibt ein falsches Datum wie 31.12.1969 zurück …

    – Enrique

    29. April 2010 um 22:20 Uhr

  • @Enrique: Wenn Sie 000-00-00 von MySQL erhalten, sollten Sie dies ZUERST testen, bevor Sie es durch die Konvertierung führen. Einfach.

    – Schattensturm

    4. November 2012 um 15:20 Uhr

  • @SobinAugustin et al: strtotime() konvertiert die Datumszeichenfolge in einen “Unix-Zeitstempel (die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC)”, ein Format, das date() verstehen und dann konvertieren kann. Das funktioniert also nicht mit einem Zeitstempel vor 1970.

    – Samuel Lindblom

    30. Januar 2014 um 7:12 Uhr

  • @SamuelLindblom nein, so ist es nicht, es wird vor 1970 funktionieren.

    – Sobin Augustinus

    30. Januar 2014 um 9:47 Uhr

  • @SobinAugustin: Du hast recht. Es wird jedoch nicht vor dem 14.12.1901 funktionieren, so dass immer noch gilt, warum die oben aufgeführten Daten nicht funktionieren.

    – Samuel Lindblom

    30. Januar 2014 um 13:02 Uhr

Konvertieren Sie ein Datumsformat in PHP duplicate
Ceiroa

Wenn Sie die strtotime-Konvertierung vermeiden möchten (z. B. kann strtotime Ihre Eingabe nicht analysieren), können Sie Folgendes verwenden:

$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');

Oder äquivalent:

$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y');

Sie geben ihm zuerst das Format, in dem sich $dateString befindet. Dann teilen Sie ihm das Format mit, das $newDateString haben soll.

Oder wenn das Quellformat immer “Ymd” (yyyy-mm-dd) ist, dann verwenden Sie einfach Terminzeit:

<?php
    $source="2012-07-31";
    $date = new DateTime($source);
    echo $date->format('d.m.Y'); // 31.07.2012
    echo $date->format('d-m-Y'); // 31-07-2012
?>

  • Ich danke Ihnen für die DateTime::createFromFormat() – es ist wirklich nützlicher als strtotime()

    – Gtx

    11. Dezember 2012 um 11:26 Uhr

  • Hinweis: Für die ersten beiden Methoden ist PHP 5.3+ erforderlich.

    – Salman von Abbas

    3. März 2014 um 20:01 Uhr

  • Vielen Dank für die neue DateTime-Option. Das funktionierte und war eine sehr saubere Option.

    – Nina Morena

    26. April 2014 um 12:26 Uhr

  • strtotime() nützlich für die Konvertierung wahrer Typ Format (Ymd) in andere Formate, aber DateTime::createFromFormat() ist universell. Es ist wie STR_TO_DATE bei MySQL

    – Taron Saribkyan

    6. Januar 2016 um 20:35 Uhr


  • Dieser hat einfach wirklich für mich funktioniert, anstatt Bullshit strtotime()

    – Codekocher

    7. August 2017 um 18:35 Uhr

1647057250 340 Konvertieren Sie ein Datumsformat in PHP duplicate
Tim Lytle

Verwenden:

implode('-', array_reverse(explode('-', $date)));

Ohne den Aufwand für die Datumsumwandlung bin ich mir nicht sicher, ob es viel ausmachen wird.

  • Ja, geantwortet, als du deine eingereicht hast, glaube ich. Natürlich kann die in strtotime gefundene Fehlerprüfung etwas Nützliches sein.

    – Tim Lytle

    21. März 2010 um 18:44 Uhr

  • War nützlich für mich beim Konvertieren des nichtamerikanischen Datumsformats … dd-mm-yyyy => yyyy-mm-dd Siehe php.net/manual/en/datetime.formats.date.php

    – Chris Jakob

    1. September 2010 um 0:42 Uhr

  • Verstehe nicht, warum diese Antwort weniger Stimmen hat. Es sollte die am besten bewertete Antwort sein. Es löst das Problem einfach und schnell ohne Probleme. Danke

    – Naeem Ul Wahhab

    12. März 2013 um 19:42 Uhr

  • Sie können es sogar erneut aufrufen, wenn Sie das Datumsformat in seine ursprüngliche Form umkehren müssen. Beste Antwort in der Tat. 🙂

    – Pedro Araujo Jorge

    4. März 2014 um 15:17 Uhr

  • Dies sollte als akzeptierte Antwort geändert werden, es löst alle Datums- und Uhrzeitprobleme bei der Verwendung von Datums- und Datumsformaten.

    – Matteo Bononi ‘peorthyr’

    22. November 2014 um 17:03 Uhr

1647057250 424 Konvertieren Sie ein Datumsformat in PHP duplicate
Alper Sarı

$newDate = preg_replace("/(\d+)\D+(\d+)\D+(\d+)/","$3-$2-$1",$originalDate);

Dieser Code funktioniert für jedes Datumsformat.

Sie können die Reihenfolge der Ersetzungsvariablen wie $3-$1-$2 aufgrund Ihres alten Datumsformats ändern.

1647057251 398 Konvertieren Sie ein Datumsformat in PHP duplicate
Kevin

$timestamp = strtotime(your date variable); 
$new_date = date('d-m-Y', $timestamp);

Weitere Informationen finden Sie unter Dokumentation für strtotime.

Oder noch kürzer:

$new_date = date('d-m-Y', strtotime(your date variable));

1647057251 669 Konvertieren Sie ein Datumsformat in PHP duplicate
Finduilas

Auch eine andere obskure Möglichkeit:

$oldDate="2010-03-20"
$arr = explode('-', $oldDate);
$newDate = $arr[2].'-'.$arr[1].'-'.$arr[0];

Ich weiß nicht, ob ich es verwenden würde, aber trotzdem 🙂

1647057252 846 Konvertieren Sie ein Datumsformat in PHP duplicate
Peter Mortensen

Es gibt zwei Möglichkeiten, dies zu implementieren:

1.

    $date = strtotime(date);
    $new_date = date('d-m-Y', $date);

2.

    $cls_date = new DateTime($date);
    echo $cls_date->format('d-m-Y');

992610cookie-checkKonvertieren Sie ein Datumsformat in PHP [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy