Maison > développement back-end > tutoriel php > Comment puis-je convertir une chaîne de date 'y-m-d-h-i-s' en 'Y-m-d H:i:s' en PHP ?

Comment puis-je convertir une chaîne de date 'y-m-d-h-i-s' en 'Y-m-d H:i:s' en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-24 18:32:34
original
544 Les gens l'ont consulté

How Can I Convert a 'y-m-d-h-i-s' Date String to 'Y-m-d H:i:s' in PHP?

Conversion des formats de date en PHP

Vous pouvez rencontrer des situations où vous devez transformer des dates d'un format à un autre en PHP. Bien que PHP propose plusieurs fonctions de manipulation de date, il est essentiel de comprendre le processus et les pièges potentiels.

Considérez ce scénario : vous avez une date au format 'y-m-d-h-i-s' et vous souhaitez la convertir au format "y-m-d-h-i-s". Format 'Y-m-d H:i:s'. En règle générale, vous utiliserez strtotime() pour convertir la chaîne en horodatage, puis la transmettrez à date(). Cependant, dans votre cas, strtotime() renvoie false, vous laissant avec la date incorrecte « 1970-01-01 00:00:00 ».

Le problème réside dans le format de la chaîne d'entrée. strtotime() attend un horodatage valide ou une chaîne dans un format qu'il reconnaît. Malheureusement, « y-m-d-h-i-s » ne fait pas partie de ces formats reconnus.

Solutions

PHP 5.3 et versions ultérieures

Pour PHP 5.3 et versions ultérieures, la solution recommandée consiste à utiliser DateTime::createFromFormat(). Cette fonction vous permet de spécifier un masque précis en utilisant la syntaxe date() pour analyser les dates de chaîne entrantes. Pour votre cas, le code ressemblerait à ceci :

$datetime = DateTime::createFromFormat('y-m-d-h-i-s', $old_date);
$new_date = $datetime->format('Y-m-d H:i:s');
Copier après la connexion

PHP 5.2 et inférieur

En PHP 5.2 et inférieur, vous analysez manuellement les éléments (année , mois, jour, heure, minute, seconde) en utilisant substr() et transmettez les résultats à mktime(), qui générera un horodatage.

Cependant, cette approche est plus lourde. Il est préférable d'utiliser un format différent que strftime() peut comprendre, et qui prend en charge différents formats d'entrée de date. Par exemple, ce code fonctionne :

$old_date = date('l, F d y h:i:s');                
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal