begin process at 2012 05 27 19:54:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > DIFFÉRENCE ENTRE DEUX DATES ET HEURES CALCULÉ EN SECONDES/MINUTES ETC...

DIFFÉRENCE ENTRE DEUX DATES ET HEURES CALCULÉ EN SECONDES/MINUTES ETC...


 Description

Bonjour à tous et toutes,

J'ai pris un peu de temps pour décortiquer de quelle manière je pouvais trouver le nombre de 1/4 d'heure entre deux dates mais également entre des heures.. pour par exemple établir le début d'un travail à tel moment et le terminer à tel moment.

Dites moi si il y a plus simple, mais en cherchant, je n'ai pas trouvé ce genre de fonction :-)

Bon amusement,
Mikado

Source

  • <?
  • function date_diff($datedebut,$datefin) /// format de vos dates date("Y-m-d H:i:s");
  • {
  • list($de,$td) = explode(' ', $datedebut); // Séparation date et heure début
  • list($df,$tf) = explode(' ',$datefin); // Séparation date et heure fin
  • $dd = split("-",$de); $ddannee = $dd[0]; $ddmois = $dd[1]; $ddjour = $dd[2]; /// date 1
  • $hd = split(":",$td); $hdheure = $hd[0]; $hdmin = $hd[1]; $hdsec = $hd[2]; /// heure 1
  • $df = split("-",$df); $dfannee = $df[0]; $dfmois = $df[1]; $dfjour = $df[2]; /// date 2
  • $hf = split(":",$tf); $hfheure = $hf[0]; $hfmin = $hf[1]; $hfsec = $hf[2]; /// heure 2
  • $time1=time() - mktime($hdheure, $hdmin, $hdsec, $ddmois, $ddjour, $ddannee);
  • /// difference de seconde entre 1-1-1970 et la date 1
  • $time2=time() - mktime($hfheure, $hfmin, $hfsec, $dfmois, $dfjour, $dfannee);
  • /// difference de seconde entre 1-1-1970 et la date 2
  • $tsecs = ceil(($time1-$time2)/60/15); /// time1 - time2 donne le nombre en secondes
  • /// pour avoir les minutes on divise par 60
  • /// ensuite divise par 15 pour voir le nombre de 1/4 d'heure
  • /// et j'arrondis le tout au dessus car le quart d'heure
  • /// débuté est automatiquement facturé
  • $texte=$tsecs;
  • return $texte;
  • }
  • ?>
  • Pour utiliser la fonction :
  • <?
  • $quantiteminutes=date_diff("2010-09-22 15:30:00","2010-09-22 16:16:00");
  • echo $quantiteminutes; /// affichage du nombre : 4 soit 4 1/4 d'heure entamés
  • ?>
<?
function date_diff($datedebut,$datefin)   /// format de vos dates date("Y-m-d H:i:s");
{
    list($de,$td) = explode(' ', $datedebut); // Séparation date et heure début
    list($df,$tf) = explode(' ',$datefin); // Séparation date et heure fin

    $dd = split("-",$de); $ddannee = $dd[0]; $ddmois = $dd[1]; $ddjour = $dd[2]; /// date 1
    $hd = split(":",$td); $hdheure = $hd[0]; $hdmin = $hd[1]; $hdsec = $hd[2];   /// heure 1
    
    $df = split("-",$df); $dfannee = $df[0]; $dfmois = $df[1]; $dfjour = $df[2]; /// date 2
    $hf = split(":",$tf); $hfheure = $hf[0]; $hfmin = $hf[1]; $hfsec = $hf[2];   /// heure 2

      $time1=time() - mktime($hdheure, $hdmin, $hdsec, $ddmois, $ddjour, $ddannee); 
/// difference de seconde entre 1-1-1970 et la date 1
     $time2=time() - mktime($hfheure, $hfmin, $hfsec, $dfmois, $dfjour, $dfannee); 
/// difference de seconde entre 1-1-1970 et la date 2

     $tsecs = ceil(($time1-$time2)/60/15);  /// time1 - time2  donne le nombre en secondes
                                            /// pour avoir les minutes on divise par 60
                                            /// ensuite divise par 15 pour voir le nombre de 1/4 d'heure
                                            /// et j'arrondis le tout au dessus car le quart d'heure
                                            /// débuté est automatiquement facturé

    $texte=$tsecs;         
    return $texte;
} 
?>

Pour utiliser la fonction : 

<?
$quantiteminutes=date_diff("2010-09-22 15:30:00","2010-09-22 16:16:00");
echo $quantiteminutes; /// affichage du nombre : 4  soit 4 1/4 d'heure entamés
?>



 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

Commentaires et avis

Commentaire de neigedhiver le 23/09/2010 00:49:30

Salut,

C'est bien compliqué...
Je pense qu'il est plus rapide (et plus simple, plus lisible, etc) d'utiliser strtotime() pour convertir une date en secondes. On fait une soustraction, on divise par 60, on a des heures d'écart...
En une ligne, voici comment avoir le nombre de minutes commencées entre deux dates :

$diff = ceil((strtotime($datefin) - strtotime($datedebut))/60);

Pour les heures :

$diff = ceil((strtotime($datefin) - strtotime($datedebut))/3600);

Commentaire de Mik4do le 23/09/2010 09:19:51

Ahhh .. oui en effet, je vais tester ce code...
Ma méthode fonctionne également mais si une ligne résume les 20 ... ça allégera le serveur.

Merci Neigedhiver ^^

Commentaire de abdelaziz_info le 23/09/2010 19:43:38 10/10

salut

Simplifier... Oh oui c'est superbe mais on va Peut-être te dire que ce n'est pas ici que tu dois poster ton code.

10/10 pour ton effort

Bon courage.

Commentaire de ig3 le 30/09/2010 19:46:25

très bien expliqué

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,343 sec (3)

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