IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Transformer date en français


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Transformer date en français
    J'ai trouvé ce petit script punch clock mais j'aimerais bien le modifier pour ajouter la date en français

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    setlocale(LC_ALL, 'fr_FR');	
    	// remove duplicates
    	$jj = array_unique($jj);
     
    foreach($jj as $yeah){
    	// you have to select the date atm, not to clever need to think
    	foreach($hr as $date){
    		$date_op = substr(str_replace('#','',$date),0,10);
    		if(strstr($date_op,$yeah)){
    			$calc[] = str_replace(array('#',' ',"\n"),array('',':',''),$date);
    		}
    	}
     
    	// find out the first and last value to calculate distance apart
    	$st_ex = multiexplode(array('-',':'),$calc[0]);
    	$start = mktime($st_ex[3],$st_ex[4],$st_ex[5],$st_ex[1],$st_ex[0],$st_ex[2]);
    	$sstart = mktime($st_ex[3],$st_ex[4],$st_ex[5],$st_ex[1],$st_ex[0],$st_ex[2]);
     
    	$st_ex = multiexplode(array('-',':'),end($calc));
    	$end = mktime($st_ex[3],$st_ex[4],$st_ex[5],$st_ex[1],$st_ex[0],$st_ex[2]);
     
    	// compile date
    	echo '<p>'.date('l, jS F Y',$sstart).': '.make_date($start,$end).'</p>';
    	unset($calc);
    }
     
    } else {
    	$num = count(file('hr.txt'));
    	echo '<style>.Startwork{background:#7FFF24}.Finishwork{background:#FF4040;}input{width:100%;height:90%;font-size:3em;}</style><a href="?print=true">Compilation</a><form method="post"><input type="submit" name="blt" value="'.is_odd($num).'" class="'.str_replace(' ','',is_odd($num)).'" /></form>';
    }
     
    function is_odd($num) {
    	if ($num % 2 == 0) {
    		return 'Start work';
    	} else {
    		return 'Finish work';
    	}
    }
     
    function multiexplode ($delimiters,$string){
    	$return_array = Array($string);
    	$d_count = 0;
     
    	while (isset($delimiters[$d_count])){
    		$new_return_array = Array(); 
    		foreach($return_array as $el_to_split){
    			$put_in_new_return_array = explode($delimiters[$d_count],$el_to_split);	
    			foreach($put_in_new_return_array as $substr){
    				$new_return_array[] = $substr;
    			}
    		}
    		$return_array = $new_return_array; // Replace the previous return array by the next version
    		$d_count++;
    	}
     
    	return $return_array; // Return the exploded elements
    }
     
    function make_date($d1,$d2){
    	$dateDiff    = $d2 - $d1;
    	$fullDays    = floor($dateDiff/(60*60*24));
    	$fullHours   = floor(($dateDiff-($fullDays*60*60*24))/(60*60));
    	$fullMinutes = floor(($dateDiff-($fullDays*60*60*24)-($fullHours*60*60))/60);
    	return "<strong>$fullHours</strong> heures et <strong>$fullMinutes</strong> minutes.";
    }
    ?>
    J'ai besoin d'un petit hint sur le comment faire


    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Il serait grand temps que les gens arrêtent d'utiliser une batterie de cuisine pour faire les calculs temporels.
    PHP fournit absolument tout ce qui est nécessaire en natif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    $start = DateTime::createFromFormat('d/m/Y H:i', '01/01/2012 08:00');
    $end   = DateTime::createFromFormat('d/m/Y H:i', '02/01/2012 03:37');
     
    $duree = $end->diff($start);
    echo $duree->format('%M mois %D jours %H heures et %i minutes');
     
    ?>
    Il ne faut pas oublier que cela peut devenir vite complexe avec les années bissextiles au milieu, les changement d'heures et les fuseaux horaires alors pourquoi se casser la tête ?!!??

  3. #3
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Si dans ta BdD tu a déjà des entrées sous forme autre que la date française et que tu ne veux pas les changer tu peux a la limite transformer que l'affichage en appelant la date dans ta requête comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(date_crea::timestamp with time zone, 'DD/MM/YYYY'::text)

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 174
    Points
    174
    Par défaut
    Bonjour,
    J'ai jamais utilisé, mais il existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php setlocale(LC_TIME,'fr_FR');?>
    http://php.net/manual/fr/function.setlocale.php

    Bon codage.

Discussions similaires

  1. [Dates] jour, mois d'une date en Français
    Par Ismail dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2006, 22h30
  2. [SQL] date en français dans un tableau
    Par chouchouboy dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/06/2006, 22h56
  3. Format Date Anglais/Français
    Par macben dans le forum Oracle
    Réponses: 4
    Dernier message: 22/08/2005, 10h12
  4. [XSL] Transformation DATE
    Par Phenolphtaleine dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/06/2004, 15h57
  5. Date format français
    Par coca dans le forum XMLRAD
    Réponses: 2
    Dernier message: 17/11/2003, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo