Maison >développement back-end >Problème PHP >Comment déterminer si deux horodatages correspondent au même jour en php

Comment déterminer si deux horodatages correspondent au même jour en php

藏色散人
藏色散人original
2022-11-06 10:17:042527parcourir

Comment utiliser PHP pour déterminer si deux horodatages correspondent à un jour : 1. Créez un exemple de fichier PHP ; 2. Définissez "int time_zone = 8, daily_reset_time = 5;" ; 3. Passez "bool IsTimeToReset(time_t last_reset_time, time_t cur_time ){...}" méthode pour réaliser le jugement.

Comment déterminer si deux horodatages correspondent au même jour en php

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.

Comment PHP détermine-t-il si deux horodatages correspondent au même jour ?

Pour déterminer si deux horodatages sont le même jour

Analyse d'idées

Pour déterminer si deux horodatages ne sont pas le même jour, il suffit de diviser les secondes absolues de chacun des deux jours par 24* 3600 pour obtenir l'heure depuis l'époque jusqu'à maintenant. Après combien de jours se sont écoulés, si la différence entre les deux résultats est supérieure à 0, cela signifie qu'ils ne sont pas le même jour et doivent être réinitialisés. Mais il y a deux facteurs à considérer :

Premièrement, l'heure actuelle moins le point horaire de réinitialisation défini (comme 5 heures tous les jours), car elle est réinitialisée à 5 heures, soustrayez 5*3600 pour vous assurer que l'heure actuelle est réglée à 5 heures. l'heure actuelle est supérieure ou égale à l'heure de réinitialisation. L'heure réglée est 5 heures ce jour-là.

La seconde est la seconde absolue plus la partie de l'horodatage correspondant au fuseau horaire correspondant, afin que l'heure obtenue corresponde à l'heure locale. Par exemple, sans ajouter de fuseau horaire, vous obtenez le nombre de jours écoulés depuis le 1er janvier 1970 à 00:00:00, heure moyenne de Greenwich. L’heure de Pékin est en avance de 8 heures sur l’heure moyenne de Greenwich. 16 heures à l'heure américaine correspondent à zéro heure le lendemain à l'heure de Pékin. Ce que nous devons calculer en termes de temps, c'est la différence en jours correspondant à l'heure dans ce fuseau horaire, nous devons donc l'ajouter. le fuseau horaire. L'heure résultante est time_zone * 3600

Implémentation du code

int time_zone = 8, daily_reset_time = 5;
time_t BetweenDays(time_t time1, time_t time2)
{
return (time1 + time_zone *3600)/3600/24 - (time2 + time_zone *3600)/3600/24;
}
/*
 * last_reset_time 为上次执行的每日重置时间
 * cur_time 为当前时间
 */
bool IsTimeToReset(time_t last_reset_time, time_t cur_time)
{
return BetweenDays(cur_time - 3600 * daily_reset_time, last_reset_time - 3600 * daily_reset_time) > 0;
}

Apprentissage recommandé : "Tutoriel vidéo PHP"

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