rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Calcul date php

philias001, le vendredi 1 juin 2007 à 13:53:01
Calcul date php

Est il possible de calculer une date de livraison :
On sait qu'il faut 4 jours pour etre livré, hors samedi et dimanches.

Le resultats donnerais :

Date de livraison prévue : le xx/xx/20xx
xx/xx/20xx = date aujourd'hui + 4 jours sauf samedi dimanche

J'ai trouvé des script de calcul de dates en php, ou on peut facilement rajouter 4 jours, mais il compte les week end, et si le client commande samedi, le calcul des 4 jours commence que lundi !

Merci pour votre aide
Configuration: Windows XP
Internet Explorer 6.0
Répondre à philias001  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le lundi 11 juin 2007 à 18:01:22
Une solution:

tu cree un tableau avec en clef le jour de commande et en valeur le delta à rajouter.

exemple $tableau=array("lundi"=>4,"mardi"=>6,"mercredi"=>6, etc...);

ensuite $date_livr=$date_cde+$tableau[date_cde];

Attention pour travailler sur les dates il vaut mieux passer par le timestamp (donc dans ce cas en tenir compte dans le delta)
Répondre à Alain42

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le lundi 11 juin 2007 à 20:31:44
precision complementaire:

dans $tableau[date_cde] le parametre date_cde est le jour de la semaine de la date cde c a d lundi mardi etc,

pour le retrouver depuis la date de commande voir la fonction date(......) de php
par exemple transformer la date de cde en timestamp puis extraire le jour semaine (en anglais) par date("l",timestamp_date_cde) et dans l'array mettre les jours en anglais bien sûr.

Recherche sur Google pour ttes ces fonctions.

Timestamp c'est le nombre de secondes écoulées depuis le 1 ier janvier 1970.

Donc le delta timestamp pour un jour c'est 24 x 3600

J'espère que cette piste te rendra service.
Répondre à Alain42

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le mardi 12 juin 2007 à 12:08:12
Encore moi

Il faut aussi gérer les fériés!

tu peux t'inspirer de cette fonction sur le site

http://www.phpcs.com/codes/JOURS-OUVRES_38705.aspx

Bye
Répondre à Alain42

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le jeudi 14 juin 2007 à 09:54:02
est ce que tu as pu trouver une solution. ?
Si besoin je peux te faire un petit script.
Répondre à Alain42

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
achille, le mercredi 23 janvier 2008 à 16:17:59
bonjouur!
je suis en premiere année de bts ig acctuellement je suis en cours je travail sur php la prof nous a donne un exo c de prendre toute la liste des eleve avec leur nom et prenom et a laide dun calcul on doi trouver leurs age et ca jarrive pas je vous montre mon programme et svp envoyer moi la bonne solution merci davance

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Exercice 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>
<body>
<center>
<h2>2004-2005 TSIG1B</h2>


<?php
$tab = file("tsig1b.txt");
?>

<table border = "2px solid black">
<tr>
<td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td>
</tr>

<?php


for ($i = 0; $i < count($tab); $i++){

$ligne = explode(";",$tab[$i]);
echo "<tr>";
for ($j = 0; $j < count($ligne); $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "<td></td>";
echo "</tr>";
}


?>


</table>






</center>
</body>
</html>
Répondre à achille

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le mercredi 23 janvier 2008 à 16:28:54
Essayes ça:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Exercice 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>
<body>
<center>
<h2>2004-2005 TSIG1B</h2>


<?php
$tab = file("tsig1b.txt");
?>

<table border = "2px solid black">
<tr>
<td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td>
</tr>

<?php


for ($i = 0; $i < count($tab); $i++){

$ligne = explode(";",$tab[$i]);
$array_annee_naiss=explode("/",$ligne[2]);//si annee de naissance sous la forme jj/mm/aaaa
$annee_naissance=$array_annee_naiss[2];
$annee_actuelle=date("Y");
//calcul brut si ne en 1988, on est en 2008  age=20
$age=$annee_actuelle-$annee_naissance;
echo "<tr>";
for ($j = 0; $j < count($ligne); $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "<td>".$age." ans </td>";
echo "</tr>";
}


?>


</table>






</center>
</body>
</html>
Répondre à Alain42

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Alain42, le mercredi 23 janvier 2008 à 17:51:15
Dans mon post précédent je t'ai fait le calcul BOURIN de l'age, sans tenir compte de la date anniversaire, alors voici un calcul plus précis.

On a 20 ans lorsque la date anniversaire est passée.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  <head>
<title>Exercice 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

</head>
<body>
<center>
<h2>2004-2005 TSIG1B</h2>


<?php
$tab = file("tsig1b.txt");
?>

<table border = "2px solid black">
<tr>
<td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td>
</tr>

<?php


for ($i = 0; $i < count($tab); $i++){

$ligne = explode(";",$tab[$i]);

$array_date_naissance=explode("/",$ligne); // si date de naissance sous la forme jj/mm/aaa
	$jour_naiss=$array_date_naissance[0];
	$mois_naiss=$array_date_naissance[1];
	$annee_naiss=$array_date_naissance[2];
	$jour_actu=date('d');
	$mois_actu=date('m');
	$an_actu=date('Y');

	if($mois_naiss==2 AND $jour_naiss==29 AND date('L')==0 ){
		
                     // pour ceux qui sont nés une année bissextile et que l'on est pas une année bissextile
                    // on ramene le jour de naiss à 28 sinon condition $jour_actu >= $jour_naiss ci desoous ne sera jamais remplie
                      $jour_naiss=28;
	}
	if($mois_actu >= $mois_naiss  AND $jour_actu >= $jour_naiss){
		//si la date anniversaire est égale ou dépassée
		$age=$an_actu-$annee_naiss;
	}else{
		$age=$an_actu - $annee_naiss -1;
	}
echo "<tr>";
for ($j = 0; $j < count($ligne); $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "<td>".$age." ans </td>";
echo "</tr>";
}


?>


</table>
</center>
</body>
</html>

Répondre à Alain42
Logiciels pertinents trouvés dans les téléchargements
Télécharger A-ToolBar 3.01A-ToolBar - A-Toolbar vous apporte 50 outils indispensables dans un seul programme. Ces outils comprennent: General tools: Metasearch,...Catégorie: Web
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger PSPad 4.5.2PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,...Catégorie: Développement
Licence: Freeware/gratuit
Télécharger Ma Calculatrice  2.3Ma Calculatrice - Windows propose par défaut une calculatrice avec des fonctions dites scientifiques mais tout de même incomplètes. ...Catégorie: Calculatrice
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Calcul date php »