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
Linda Hamiltonoriginal
2024-11-29 13:14:10858parcourir

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']);

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)));

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)));

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);

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!

Déclaration:
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