Maison  >  Questions et réponses  >  le corps du texte

PHP : Convertir le format de date

<p>Existe-t-il un moyen simple de convertir un format de date en un autre en PHP ? </p> <p>J'ai ceci :</p> <pre class="brush:php;toolbar:false;">$old_date = date('y-m-d-h-i-s'); // fonctionne $middle = strtotime($old_date); // renvoie bool(false) $new_date = date('Y-m-d H:i:s', $middle); // renvoie le 01/01/1970 00:00:00</pre> <p>Mais bien sûr, je souhaite qu'il renvoie la date actuelle et non l'heure de la journée. Qu'ai-je fait de mal? </p>
P粉769413355P粉769413355442 Il y a quelques jours508

répondre à tous(2)je répondrai

  • P粉439804514

    P粉4398045142023-08-28 12:37:15

    Le moyen le plus simple est

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

    Vous lui fournissez d’abord le format $dateString. Ensuite, vous lui indiquez le format dans lequel vous souhaitez que $newDateString soit.

    Cela évite également d'utiliser strtotime, qui peut parfois être difficile à utiliser.

    Si vous n'avez pas l'intention de convertir d'un format de date à un autre, mais souhaitez simplement la date actuelle (ou dateheure) dans un format spécifique, alors c'est encore plus simple :

    $now = new DateTime();
    $timestring = $now->format('Y-m-d h:i:s');

    Une autre question couvre également le même sujet : Convertir le format de date aaaa-mm-jj => jj-mm-aaaa.

    répondre
    0
  • P粉006977956

    P粉0069779562023-08-28 09:51:45

    Le deuxième argument de

    date() doit être l'horodatage correct (nombre de secondes depuis le 1er janvier 1970). Vous transmettez une chaîne que date() ne reconnaît pas.

    Vous pouvez utiliser strtotime() pour convertir une chaîne de date en horodatage. Cependant, même strtotime() ne reconnaît pas le format y-m-d-h-i-s.

    PHP 5.3 et supérieur

    Utilisez DateTime::createFromFormatDateTime::createFromFormat。它允许您使用 date(). Il vous permet de spécifier le masque exact - en utilisant la syntaxe

    - pour analyser la date de la chaîne entrante.

    PHP 5.2 et versions antérieures

    substr()Vous devez analyser manuellement les éléments (année, mois, jour, heure, minute, seconde) en utilisant et transmettre le résultat à mktime()

    qui créera un horodatage pour vous.

    Mais cela demande beaucoup de travail ! Je recommande d'utiliser un format différent que strftime() comprend. strftime() peut comprendre n'importe quelle 乔下次在冰上滑倒的时间date saisie,

    . Par exemple, cela fonctionne : 🎜
    $old_date = date('l, F d y h:i:s');              // returns Saturday, January 30 10 02:06:34
    $old_date_timestamp = strtotime($old_date);
    $new_date = date('Y-m-d H:i:s', $old_date_timestamp);

    répondre
    0
  • Annulerrépondre