begin process at 2012 02 15 09:20:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > NOMBRE DE JOURS ENTRE DEUX TIMESTAMP

NOMBRE DE JOURS ENTRE DEUX TIMESTAMP


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Classé sous :jours, timestamp, date, nombre, entre Niveau :Débutant Date de création :27/01/2007 Date de mise à jour :12/06/2010 14:46:20 Vu :17 116

Auteur : parraccourci

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Retourne le nombre de jours entre deux timestamp sans faire simplement la difference des timestamp, il evalue aussi le fait que la difference peut deborder sur un jour supplementaire!

Source

  • function nbrJr($debut,$fin){
  • $debutJournee = mktime(0,0,0,date("m",$debut),date("d",$debut),date("Y",$debut));
  • $diff = $fin - $debut;
  • $nbJr= intval( $diff / 86400 ); // 86400 secondes par jour
  • // Si ka différence entre les dates déborde sur un jour supplémentaire
  • if( ($debut - $debutJournee) + ($diff % 86400) > 86400 )
  • $nbJr++;
  • return $nbJr;
  • }
function nbrJr($debut,$fin){
	$debutJournee = mktime(0,0,0,date("m",$debut),date("d",$debut),date("Y",$debut));
	$diff = $fin - $debut;

	$nbJr= intval( $diff / 86400 ); // 86400  secondes par jour

	// Si ka différence entre les dates déborde sur un jour supplémentaire
	if( ($debut - $debutJournee) + ($diff % 86400) > 86400 )
		$nbJr++;

	return  $nbJr;
}



 Historique

12 juin 2010 14:46:20 :
Prise en compte des commentaires ( 86400 à la place de 24 * 3600 ).

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

DIFFÉRENCE ENTRE DEUX DATE EN JOURS (LISTE RÉCUPÉRÉE DANS UN... par DevilTN
Source avec Zip Source avec une capture CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET L... par mondherclubiste
CALCUL SIMPLE DU NOMBRE DE JOURS OUVRÉS ENTRE DEUX DATES (JO... par Astemius
UNIX TIME CONVERTER (UTC) par tiger222
TEMPS ÉCOULÉ (DURÉE) ENTRE 2 DATES SOUS FORME LITTÉRAL NATUR... par olid

Commentaires et avis

Commentaire de coucou747 le 27/01/2007 14:39:16 administrateur CS

fonction déjà vue plein de fois ici, et mal codée : " => '

Commentaire de coockiesch le 27/01/2007 16:14:29

Salut!
Je te propose de remplacer 24 * 3600 par 86400, tu gagnes tes calculs à chaque appel de la fonction!

@++

R@f

Commentaire de cedriclomb le 29/01/2007 00:33:45


Salut
On pourrais aussi liberer de la mémoire en fesant
if( ((($fin - $debut)%(24*3600))+($debut-$debutJournee)) > (24*3600) ) $nbJr++;
Ca fait 2 variables de gagner

Commentaire de coucou747 le 29/01/2007 10:43:53 administrateur CS

remplacer des calculs par des résultats, c'est pas exeptionnellement bon pour la compréhention du script...

Commentaire de coockiesch le 29/01/2007 11:16:39

C'est pour ça que y'a les comments, :)
Enfin, je trouve, même si c personnel!

@++

R@f

Commentaire de FhX le 29/01/2007 21:53:53

Pareil, autant faire :

// 86400 = 24*3600
.....code.... * 86400 ..... ;


Bon, si 1 itération, ca va rien changer.
Je pense qu'au bout d'un certain... et encore, je doute :o
Un calcul d'entier est le plus rapide, on risque de perdre 1ms sur 1 000 000 000 d'itération !
C'est Antho qui risque de se tirer les cheveux :p

Commentaire de zogo17 le 15/07/2009 02:21:47

Oupla, un petit commentaire tardif...

coucou747 tu pars du principe qu'une source est mal codée parce que on a écrit "m" à la place de 'm' ?

Faut arrêter de déconner, quand t'écris "m" la seul différence c'est que ca fait pensé à un language normal comme tout les languages ou un string est délimités par des ".

Après, si tu veux gagner 1 ms sur 1 milliard d'iteration et bien montrer que PHP c'est un language dont la synthaxe peut être moche alors tu le dit en parenthèse, tu dis pas que le script est pourri à cause de ça.

Commentaire de parraccourci le 12/06/2010 14:37:14

@cedriclomb
Mettre un max de variable dans la même instruction ne fait pas gagner de mémoire. Le compilateur PHP finit quand même par créer et stocker en mémoire les résultats intermédiaires des instruction. La seule différence est que le code est moins lisible. C'est donc une pratique à éviter.

@autres
Je ne sais pas comment fonctionne le compilateur PHP mais tout bon compilateur remplace automatiquement les résultats de calculs statiques par leur résultat, ne provoquant au final aucune différence sur le fichier exécutable. Mais bon, il est clair que de mettre le directement le résultat ne mange pas de pain!

Commentaire de coockiesch le 12/06/2010 15:01:54

Sachant que PHP est interprété et non compilé, c'est d'autant plus important...

Raf

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Demande d'aide pour les dates encore et toujours [ par nagrom_om ] En fait je dois calculer le nombre de jours ouvrables pour une periode choisie dans des select. J'ai codé mes fonctions pour calculer tout ç convertir un nombre en timestamp [ par Vautour013 ] bonjour,je dois calculer une date à partir du 1er janvier de l'année en cours + un certain nombre de mois.je voudrais convertir ce nombre de date + un nombre de jours [ par matsumato ] Bonjour; j'ai besoin d'aide pour afficher une date après avoir ajouter un nombre quelconque de jours; mais d'abord comment on peut ajouter un nombre d calcule le nombre de jour restant [ par ahlemlo ] bonjour,j'ai un petit problème est comment calculer le nombre de jour restantj'ai 2 date date début et date finje veux juste calculer le nombre de jou date de semaine qui chevauche deux mois [ par val78 ] BonjourApres avoir ete sur google et sans trouver se qui m'interesse je fais appel a vousje code en phpJe cherche comment sur une semaine qui chevauch Création de numéro de facture. [ par grahamm ] onjour, Je débute en php/mysql est j'ai en tête de faire une petite application web, qui me sera utile au boulot. Mais il me reste une chose dont je n Comment faire un test selon une date et a quel moment [ par ninho44 ] Bonjour à tous,Je développe un site PHP avec une base de données MySQL, et j'ai un petit souci.Ce site sera payant mais avec une période d'essai de 15 recuperer toutes les dates superieurs a la date du jours [ par fatatra ] Bonjour a tous,je veux faire un truc tous simple apparement et pourtant je n'y arrive pas.Je veux lister toutes les dates contenues dans ma bdd superi Nombre de jours séparant 2 date [ par Seb33300 ] Salutje cherche a trouver le nombre de jour séparant 2 date au format timestamppar exemple, si ma premiere date correspond au 16/09/2006 et que la 2em Timestamp / Date [ par Aaron ] Bonjour, J'aimerais insérer un Timestamp (avec une date dans le futur) dans ma base de données.Je procède comme ceci afin d'avoir la date et l'heure a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,810 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales