Maison > base de données > tutoriel mysql > Comment puis-je gérer les dates antérieures à 1970 en PHP lors de l'utilisation de « strtotime() » ?

Comment puis-je gérer les dates antérieures à 1970 en PHP lors de l'utilisation de « strtotime() » ?

Mary-Kate Olsen
Libérer: 2024-11-25 11:31:14
original
469 Les gens l'ont consulté

How Can I Handle Dates Before 1970 in PHP When Using `strtotime()`?

Travailler avec des dates antérieures à 1970 à l'aide de strtotime()

Problème :

Vous avez un colonne de texte dans une base de données MySQL stockant les dates au format aaaa-mm-jj. Votre code PHP utilise strtotime() pour convertir les dates, mais vous découvrez qu'il n'analyse les valeurs qu'après le 1er janvier 1970. Beaucoup de vos dates se situent avant cette limite, et vous vous demandez s'il existe une solution de contournement sans altérer la structure de votre base de données.

Solution :

La documentation officielle PHP met en évidence les limitations de plage de dates de strtotime() :

Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT
Copier après la connexion

Option 1 : Mettre à niveau la version PHP et le système d'exploitation

Si possible, mettez à niveau vers une version PHP égale ou supérieure à 5.1.0 sur une plate-forme prenant en charge la plage de dates étendue.

Option 2 : utiliser DateTime de PHP Objets

Envisagez d'utiliser des objets DateTime pour les dates en dehors de la plage strtotime(). Ils offrent une plus grande flexibilité.

Approche procédurale :

$date = date_create($row['value']);
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, "F j, Y");
Copier après la connexion

Approche POO :

try {
    $date = new DateTime($row['value']);
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format("F j, Y");
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