recherche
Maisoninterface Webtutoriel CSSRecettes de date et d'heure PHP

Recettes de date et d'heure PHP

La gestion des dates et du temps est l'un des problèmes qui font des maux de tête des programmeurs. Dans le même temps, ils sont le fondement du développement de logiciels, des métadonnées et du tri des choses aux déclencheurs basés sur le temps, et un grand nombre d'applications entre les deux.

La date et l'heure sont également sujettes aux erreurs. Manipulation incorrecte, ils peuvent confondre les utilisateurs finaux et les collègues des programmeurs.

Voici un guide rapide sur la façon de gérer les dates et les heures du langage de programmation PHP. Il est conçu comme une référence pour vos besoins les plus courants tels que la mise en forme et le réglage des dattes. C'est simple, mais il est susceptible de couvrir 80% de vos besoins.

Table des matières

  • Obtenez la date et l'heure actuelles
  • Construire un objet DateTime pour une période spécifique
  • Fuseau horaire
  • Localisation
  • Voyage dans le temps
  • Date et heure qui se produit régulièrement
  • Combien de jours?
  • Étapes suivantes?

Cette étude a été soutenue par Frontend Masters, le partenaire d'apprentissage officiel de CSS-Tricks.

Besoin d'une formation en développement frontal?

Frontend Masters est le meilleur endroit pour apprendre. Ils offrent des cours sur toutes les technologies frontales les plus importantes. Vous souhaitez devenir un développeur complet? C'est votre meilleur choix:

Suivre le cours #### Obtenez la date et l'heure actuelles

Il convient de noter que les dates et le temps peuvent être représentés sous trois formes: horodatage (c'est-à-dire le temps de l'époque), objet DateTime et chaîne.

Premièrement, obtenez le code pour la date et l'heure actuelles:

  php $ maintenant = new DateTime ();
var_dump ($ maintenant);

// objet (datetime) # 1 (3) {
// ["date"] =?>
// String (26) "2021-10-13 22: 25: 11.790490"
// ["timezone_type"] =>
// int (3)
// ["fuseau horaire"] =>
// String (12) "Asie / Jakarta"
//}

Cela fournit un objet DateTime qui peut être utilisé pour créer des chaînes de date et de temps:

  php $ maintenant = new DateTime ();
Echo $ Now -?> Format ("YMD");
Echo $ Now-> Format ("YMD H: I: S A");

Vous pouvez comprendre intuitivement que Y représente l'année, M représente le mois, D représente la date du mois, etc. La liste complète des paramètres peut être trouvée dans le manuel PHP, mais je vais énumérer certains des paramètres les plus couramment utilisés ici pour référence.

L'objet DateTime peut être converti en horodatage:

  php $ maintenant = new DateTime ();
echo $ maintenant -?> gettimestamp ();

Mais nous pouvons également obtenir l'horodatage actuel sans construire l'objet DateTime:

  Php Echo Time (); // 1634139081
?>

Construire un objet DateTime pour une période spécifique

Et si nous voulons construire un objet DateTime pour une période spécifique (par exemple, 14 juillet 2011)? Nous pouvons passer la chaîne de date formatée au constructeur:

php $ date = new DateTime ("2011-07-14"); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] =?> // String (26) "2011-07-14 00: 00: 00.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (12) "Asie / Jakarta" //}

Le constructeur accepte également d'autres formats:

php $ date = new DateTime ("14-07-2011"); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] =?> // String (26) "2011-07-14 00: 00: 00.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (12) "Asie / Jakarta" //}

Mais soyez conscient de formats ambigus, tels que:

php $ date = new DateTime ("14/07/2011"); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] =?> // String (26) "2011-07-14 00: 00: 00.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (12) "Asie / Jakarta" //}

Vous pourriez penser que tout le monde devrait être familier avec le format de date aux États-Unis. Mais tout le monde ne le connaît pas, et il peut être interprété différemment. PostgreSQL ne fait pas exception.

Créer une table s'il n'existe pas publique.datetime_demo ( Date créée )); Insérer dans DateTime_demo (Created_At) VALEUR ('07 / 12/2011 '); Sélectionnez Created_at dans DateTime_demo; / * 2011-12-07 * /

Vous pourriez penser que cela reviendra le 12 juillet 2011, mais il revient le 7 décembre 2011. Une meilleure approche consiste à utiliser un format explicite:

php $ date = dateTime :: CreateFromFormat ('m / d / y', "10/08/21"); var_dump ($ date); // objet (datetime) # 2 (3) { // ["date"] =?> // String (26) "2021-10-08 16: 00: 47.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (12) "Asie / Jakarta" //}

Et si nous voulons construire un objet DateTime à partir d'un horodatage?

php $ date = new DateTime (); $ date -?> Settimestamp (1634142890); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] => // String (26) "2021-10-13 23: 34: 50.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (12) "Asie / Jakarta" //}

Si nous voulons convertir l'objet horodat-time en une chaîne de date formatée, nous n'avons pas à créer un objet DateTime:

PHP Echo Date ("YMD H: I A", Time ());?>

Fuseau horaire

Nous pouvons créer un objet DateTime avec des informations de fuseau horaire, par exemple, si nous avons affaire à l'heure standard du Pacifique, à l'heure du jour de l'Est, etc.

Php $ Timezone = new DateTimeZone ("America / New_york"); $ date = new DateTime ("2021-10-13 05:00", $ Timezone); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] =?> // String (26) "2021-10-13 05: 00: 00.000000" // ["timezone_type"] => // int (3) // ["fuseau horaire"] => // String (16) "America / New_york" //} // par exemple, heure de la lumière du jour de l'Est: New York $ Date = new DateTime ("2021-10-13 05:00 EDT"); var_dump ($ date); // objet (datetime) # 2 (3) { // ["date"] => // String (26) "2021-10-13 05: 00: 00.000000" // ["timezone_type"] => // int (2) // ["fuseau horaire"] => // String (3) "EDT" //} $ date = new DateTime ("2021-10-13 05:00 -04: 00"); var_dump ($ date); // objet (datetime) # 1 (3) { // ["date"] => // String (26) "2021-10-13 05: 00: 00.000000" // ["timezone_type"] => // int (1) // ["fuseau horaire"] => // String (6) "-04: 00" //}

Il existe trois façons de créer un objet DateTime contenant des informations de fuseau horaire. Timezone_type accepte différentes valeurs pour chaque méthode.

Mais que se passe-t-il si nous voulons convertir les dates et les temps affichés dans le fuseau horaire de New York pour s'afficher dans le fuseau horaire de Jakarta?

php $ newyorktimezone = new DateTimeZone ("America / new_york"); $ date = new DateTime ("2021-11-11 05:00", $ newyorktimezone); Echo $ Date -?> Format ("YMD H: I A"); $ jakartatimezone = new DateTimeZone ("Asia / Jakarta"); $ date-> setTimeZone ($ jakartatimezone); Echo $ Date-> Format ("YMD H: I A");

Lorsque New York est à 5 h 00, Jakarta est à 17 h 00 le même jour. Mais il y a un mois, Jakarta n'était que 11 heures plus vite que New York, comme indiqué ci-dessous:

php $ newyorktimezone = new DateTimeZone ("America / new_york"); $ date = new DateTime ("2021-10-11 05:00", $ newyorktimezone); Echo $ Date -?> Format ("YMD H: I A"); $ jakartatimezone = new DateTimeZone ("Asia / Jakarta"); $ date-> setTimeZone ($ jakartatimezone); Echo $ Date-> Format ("YMD H: I A");

PHP traite automatiquement l'heure d'été.

Localisation

Voici les moyens courants d'afficher les dates et les heures aux États-Unis:

php $ maintenant = new DateTime (); Echo $ maintenant -?> Format ("M / D / Y H: I A");

Mais quelqu'un en France peut préférer un format plus courant que sa région. Ils peuvent se plaindre: «C'est horrible.» Premièrement, personne sauf les États-Unis ne met le mois précédent. Deuxièmement, la France n'utilise pas AM ou PM - ils utilisent un système 24h / 24 comme l'armée (par exemple 14h00 au lieu de 14h00). C'est ce qui satisfait les habitants français.

php $ maintenant = new DateTime (); Echo $ maintenant -?> Format ("D / m / yh: i");

Mais cela nécessite une compréhension approfondie d'un pays ou d'une région en particulier. Au lieu de cela, nous pouvons localiser la date. Pour localiser la date, nous devons installer le support d'internationalisation pour PHP. Dans Ubuntu, nous pouvons effectuer cette étape:

$ sudo apt-get install php-intl

Pour afficher la date et l'heure en français, nous pouvons utiliser IntlDateFormatter:

$ locale = "fr_fr.utf-8"; $ formatter = new IntlDateFormatter ($ Locale, IntlDateFormatter :: Full, IntlDateFormatter :: Short, "Asie / Singapour"); $ date = new DateTime ("2020-10-10 00:00 UTC"); Echo $ format-> Format ($ Date);

Vous passez le lieu français comme le premier paramètre de la forme d'instlde.
Le deuxième paramètre est le format de la date. Le troisième paramètre est la forme du temps. Le fuseau horaire qui affiche la date et l'heure est dans le quatrième paramètre.

En plus d'IntlDateFormatter :: Full and IntlDateFormatter :: Short, d'autres formats couramment utilisés incluent IntlDateFormatter :: Aucun et IntlDateFormatter :: Long
et IntlDateFormatter :: Medium.

Si vous utilisez IntLdateFormatter :: Aucun pour le temps ou le troisième paramètre, vous n'incluez pas l'heure dans le format:

$ locale = "fr_fr.utf-8"; $ formatter = new IntlDateFormatter ($ local, intlDateFormatter :: long, intlDateFormatter :: Aucun, "Asie / Singapour"); $ date = new DateTime ("2020-10-10 00:00 UTC"); Echo $ format-> Format ($ Date);

Voyage dans le temps

Passons au temps de trajet et revenons au passé et à l'avenir. Tout d'abord, comprenons DateInterval:

Php $ interval = new DateInterval ("P4M1W2DT2H5M"); // P 4M 1W 2D T 2H 5M // // p = intervalle hebdomadaire (année, mois, semaine, jour) // 4m = 4 mois // 1W = 1 semaine // 2d = 2 jours // // t = intervalle de temps (heures, minutes, secondes) // 2h = 2 heures // 5m = 5 minutes?>

P et T sont utilisés pour séparer l'intervalle de période et l'intervalle de temps. Voici comment nous allons dans le futur:

php $ date = new DateTime ("2021-10-14"); $ interval = new DateInterval ("p2d"); Echo $ Futuredate-> Format ("YMD");

Voici comment nous pouvons revenir au passé:

Php $ date = new DateTime ("2021-10-14 10:00"); $ interval = new DateInterval ("pt6h"); Echo $ PastDate-> Format ("YMD H: I");

Si nous voulons utiliser le nom du jour de la semaine pour le voyage dans le temps, nous pouvons utiliser la méthode setTimeStamp () de la fonction strToTime () et de l'objet DateTime:

php $ nextTUesDay = strToTime ("Next tutoriel"); $ date = new DateTime ("2021-10-14"); $ date -?> SettimeStamp ($ nextTuesday); Echo $ Date-> Format ("YMD");

Voir la liste complète des paramètres strToTime () dans la documentation PHP.

Date et heure qui se produit régulièrement

Une caractéristique commune dans une application de calendrier consiste à mettre en place des rappels répétés, tels que deux jours ou une fois par semaine. Nous pouvons utiliser DatePeriod pour représenter une période de temps:

php $ start = new DateTime ("2021-10-01"); $ end = new DateTime ("2021-11-01"); $ interval = new DateInterval ("p1w"); // à partir du 1er octobre 2021 (inclusif), sauté toutes les 1 semaine // jusqu'au 1er novembre 2021 (à l'exclusion) foreach ($ gamme comme $ date) { Echo $ Date -?> Format ("ymd"). } // 2022-10-01 // 2022-10-08 // 2022-10-15 // 2022-10-22 // 2022-10-29

Combien de jours?

Saviez-vous qu'un service comme Twitter montrera x minutes / heure / jour / etc.? Nous pouvons le faire en calculant le temps écoulé entre l'heure actuelle et le temps où l'opération se produit.

php $ date = new DateTime ("2022-10-30"); $ date2 = new DateTime ("2022-10-25"); $ date3 = new DateTime ("2022-10-10"); $ date4 = new DateTime ("2022-03-30"); $ date5 = new DateTime ("2020-03-30"); fonction get_period_ago ($ enddate, $ startDate) { $ dateInterval = $ enddate -?> diff ($ startDate); if ($ dateinterval-> invert == 1) { if ($ dateinterval-> y> 0) { Retour $ dateinterval-> y. } if ($ dateinterval-> m> 0) { Retour $ dateInterval-> m il y a des mois; } if ($ dateinterval-> d> 7) { retour (int) ($ dateinterval-> d / 7). } if ($ dateinterval-> d> 0) { Retour $ dateinterval-> d. } } } echo get_period_ago ($ date, $ date2); Echo Get_period_ago ($ Date, $ Date3); Echo Get_period_ago ($ Date, $ Date4); Echo get_period_ago ($ Date, $ Date5);

Après avoir obtenu l'objet DateInterval à partir de la méthode Diff (), assurez-vous que la variable $ startDate se trouve dans le passé en vérifiant la propriété Invert. Vérifiez ensuite les propriétés Y, M et D.

Une liste complète des propriétés d'objet DateInterval peut être trouvée dans le document PHP ici.

Étapes suivantes?

Vous avez maintenant maîtrisé des extraits de code PHP qui sont couramment utilisés lorsqu'ils traitent des dates et des heures. Besoin d'obtenir la date et l'heure actuelles? Vous devez peut-être formater la date d'une manière ou d'une autre, ou inclure le fuseau horaire local, ou comparer les dates. Tout cela est là!

Bien sûr, nous n'avons pas discuté de plus de méthodes et de fonctions sur les dates et les heures - telles que les fonctions liées au calendrier, etc. Assurez-vous de vérifier la section date et heure du manuel PHP à tout moment pour plus de cas d'utilisation et d'exemples.

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
Style CSS de niveau supérieur pour les curseursStyle CSS de niveau supérieur pour les curseursApr 23, 2025 am 11:04 AM

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Worlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleWorlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleApr 23, 2025 am 10:42 AM

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Utilisation du filtre de fond CSS pour les effets d'interface utilisateurUtilisation du filtre de fond CSS pour les effets d'interface utilisateurApr 23, 2025 am 10:20 AM

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Smil sur?Smil sur?Apr 23, 2025 am 09:57 AM

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

'Pretty' est dans l'œil du spectateur'Pretty' est dans l'œil du spectateurApr 23, 2025 am 09:40 AM

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

CSS-Tricks raconte xliiiCSS-Tricks raconte xliiiApr 23, 2025 am 09:35 AM

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtLa fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtApr 23, 2025 am 09:23 AM

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence

Se sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsSe sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsApr 23, 2025 am 09:19 AM

Le déploiement comme un idiot se résume à un décalage entre les outils que vous utilisez pour déployer et la récompense en complexité réduite par rapport à la complexité ajoutée.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),