Maison > base de données > tutoriel mysql > Comment convertir des dates PHP aux formats MySQL DATE et DATETIME ?

Comment convertir des dates PHP aux formats MySQL DATE et DATETIME ?

Linda Hamilton
Libérer: 2024-11-29 13:14:10
original
810 Les gens l'ont consulté

How to Convert PHP Dates to MySQL DATE and DATETIME Formats?

Conversion de la date PHP au format MySQL

En PHP, il est courant de rencontrer des champs de date au format utilisé dans votre code :

$date = mysql_real_escape_string($_POST['intake_date']);
Copier après la connexion

Cependant, lorsque l'on travaille avec MySQL, il est souvent nécessaire de convertir cette date au format MySQL de "0000-00-00". pour l'inclusion dans la base de données. Bien que certaines variantes de date('Y-m-d' strtotime($date);) puissent vous venir à l'esprit, il est crucial d'aborder les subtilités spécifiques impliquées dans cette conversion.

1. Gestion du type de colonne MySQL

Si votre colonne MySQL est de type DATE, indiquant uniquement une date sans heure, la méthode de conversion recommandée est :

$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
Copier après la connexion

Cela remplace les tirets" -" dans la chaîne de date avec des barres obliques "/" avant d'appliquer la fonction strtotime(). Sinon, strtotime() tentera de soustraire les nombres séparés par des tirets, conduisant à des résultats incorrects.

2. Conversion pour le type DATETIME

Si votre colonne MySQL est du type DATETIME, qui inclut à la fois des composants de date et d'heure, utilisez plutôt la conversion suivante :

$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
Copier après la connexion

Ici, nous adhérons selon le même principe de remplacement de "-" par "/", mais nous incluons également un formatage supplémentaire pour les composants temporels.

3. Approche alternative pour les formats complexes

Dans le cas où votre date est dans un format incompatible avec les fonctions strtotime() et date(), telles que "02/07/2009 00:07:00" , vous pouvez opter pour une conversion basée sur une expression régulière :

$date = '02/07/2009 00:07:00';
$date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '-- ', $date);
Copier après la connexion

Cette regex réorganise les composants de date dans le format MySQL requis, garantissant que votre champ de date PHP est converti de manière appropriée pour être inclus dans la base de données.

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