Nb de jours entre dates

Petit nouveau ! | 6 Messages

27 janv. 2010, 12:51

Bonjour à tous,

Je cherche une fonction sql qui me retournerait le nombre de jours entre un champ Date et la date actuelle ; je dois faire une difference sur le nombre de temps que l'on met pour répondre à certaines personnes qui soumettent des problèmes.
J'ai donc un champ "dateemission" et je dois faire une difference en jours entre mon champ date et la date actuelle.

Merci et bonne journée

cordialement

Ayrton

ViPHP
ViPHP | 2291 Messages

27 janv. 2010, 13:46

Salut,

Voici un exemple.
<?php
//date_default_timezone_set('Europe/London');

function NbJours($debut, $fin) {

  $tDeb = explode("-", $debut);
  $tFin = explode("-", $fin);

  $diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) -
          mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);


  return(($diff / 86400));

}
$date_debut = "2010-01-23";
$date_fin   = date('Y-m-d');
// Comment apeler la fonction
$Nombres_jours =  NbJours($date_debut, $date_fin);

$s = ($Nombres_jours > 1)? 's' : null;
// Affiche 3
echo $Nombres_jours .' jour'.$s;



?>
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 3607 Messages

27 janv. 2010, 14:16


Petit nouveau ! | 6 Messages

27 janv. 2010, 15:43

Re bonjour,

Un grand merci à dunbar et à jojolapine.
Avec tout ça, je devrais trouver mon bonheur. :D

Merci

Ayrton

ViPHP
ViPHP | 5462 Messages

27 janv. 2010, 16:01

Salut,

Voici un exemple.
<?php
//date_default_timezone_set('Europe/London');

function NbJours($debut, $fin) {

  $tDeb = explode("-", $debut);
  $tFin = explode("-", $fin);

  $diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) -
          mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);


  return(($diff / 86400));

}
$date_debut = "2010-01-23";
$date_fin   = date('Y-m-d');
// Comment apeler la fonction
$Nombres_jours =  NbJours($date_debut, $date_fin);

$s = ($Nombres_jours > 1)? 's' : null;
// Affiche 3
echo $Nombres_jours .' jour'.$s;



?>
tu sais que strtotime ca exite au lieu de faire

Code : Tout sélectionner

$tDeb = explode("-", $debut); mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);
tu fais

Code : Tout sélectionner

$tDeb = strtotime($debut);

et puis sinon ca existe deja sous php pas besion de réinventer la roue :wink:
$d1 = new DateTime('2010-01-23');
$d2 = new DateTime('now');
	
echo $d1->diff($d2)->format('%d');
sinon le top, comme c'est dis plus haut, c'est direct en SQL

Eléphanteau du PHP | 15 Messages

29 janv. 2010, 10:56

Direct en MySQL
SELECT DATEDIFF(NOW(),'1997-12-30')

ViPHP
AB
ViPHP | 5818 Messages

29 janv. 2010, 19:01

et puis sinon ca existe deja sous php pas besion de réinventer la roue :wink:
Oui enfin avec "déjà" on pourrait croire que ça existe depuis toujours.
Tout le monde n'est pas né avec php 5.2 :)

ViPHP
ViPHP | 5462 Messages

29 janv. 2010, 21:57

et puis sinon ca existe deja sous php pas besion de réinventer la roue :wink:
Oui enfin avec "déjà" on pourrait croire que ça existe depuis toujours.
Tout le monde n'est pas né avec php 5.2 :)
ouai enfin php 5.2 ca quand meme plus de 4 ans, donc aucune excuse pour pas avoir vu les nouveautés :mrgreen: