Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2711 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Soutraction date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Soutraction date

n°1534247
athome
Posté le 27-03-2007 à 14:30:37  profilanswer
 

Bonjour,
 
J'ai un champ 'dateXX' varchar pour une date (je sais, ce n'est pas bien :) ) qui est rempli par un formulaire de la façon jj-mm-aaaa, la base est bien rempli.
 
J'aimerais soustraire ce champ à la date du jour, voici mon bout de code :
 

Code :
  1. $days = date("d-m-Y" ) - $data['dateXX'];


 
Le problème, c'est qu'il me fait bien la soustraction, mais il ne prend pas en compte le mois et l'année, c'est à dire qu'il me fait  bien dans un mois le 27 moins le 19 = 8, mais si je rentre le 19 du mois de février il me donne 8 aussi comme résultat :lol:  
 
Cela ne doit pas être grand chose, mais je cherche en vain :(  
 
Merci de me filer un coup de main ;)


---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
mood
Publicité
Posté le 27-03-2007 à 14:30:37  profilanswer
 

n°1534254
nemohp
Adepte du provisoire permanent
Posté le 27-03-2007 à 14:34:54  profilanswer
 

sur le net, tu n'as rien trouvé pour convertir une stringf en date en php ???

n°1534322
athome
Posté le 27-03-2007 à 15:27:12  profilanswer
 

nemohp a écrit :

sur le net, tu n'as rien trouvé pour convertir une stringf en date en php ???


 
Bien non, je pensais que le format était bon, et qu'il ne devait pas manquer grd chose, il serait possible que tu m'indiques la marche à suivre pour faire une bonne soustraction ?  :)  
 
Merci


---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
n°1534366
chani_t
From Dune
Posté le 27-03-2007 à 15:49:17  profilanswer
 

regarde du coté des mktime(), explode(), et des timestamp Unix....

Code :
  1. $DateXX=List(explode (dateXXX, "-" ));
  2. $timestXX=Mktime(             );
  3. $timeactu=time();
  4. $dif1=$timestXX-$timeactu;
  5. $dif=date("D-M-Y", $dif1);


c'est une piste, ya peut être plus simple et rapide ?

n°1534374
skeye
Posté le 27-03-2007 à 15:55:08  profilanswer
 

malheureusement, les dates en php ce n'est jamais ni simple ni rapide...[:joce]


---------------
Can't buy what I want because it's free -
n°1534582
sielfried
Posté le 27-03-2007 à 21:15:37  profilanswer
 

date('d-m-Y', time() - strtotime($data['dateXX']));


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1535041
athome
Posté le 28-03-2007 à 14:16:07  profilanswer
 

Cela me retourne :
 

Citation :

Warning: unexpected error in date() in c:\program filexxxxxxxxxxxxxxxxxxxonnees.php on line 309
 
01-08-1970  


Message édité par athome le 28-03-2007 à 14:20:38

---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
n°1535087
chani_t
From Dune
Posté le 28-03-2007 à 14:37:09  profilanswer
 

qu'est ce qui te retourne ça ? la ligne de sielfried ?
 
essaye de décomposer un peu

n°1535091
sielfried
Posté le 28-03-2007 à 14:39:00  profilanswer
 

Y a quoi dans $data['dateXX'] ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1535119
athome
Posté le 28-03-2007 à 14:48:46  profilanswer
 

Voici un peu plus de renseignements :
 
--------------------------
   dateXX     | nbrejour     |
--------------------------
27-03-2007 |Warning: unexpected error in date() in c:\program filexxxxxxxxxxxxxxxxxxxonnees.php on line 309 |
01-03-2007 |01-08-1970  |
--------------------------
 
 

Code :
  1. <?PHP
  2. $db = mysql_connect('xxxx', 'xxxx', 'xxxx');
  3. mysql_select_db('xxxx',$db);
  4. $sql = 'SELECT * FROM xxxx order by xxxx';
  5. $req = mysql_query($sql) or die('Erreur SQL !
  6. '.$sql.'
  7. '.mysql_error());
  8. while($data = mysql_fetch_array($req))
  9. {
  10. $days = date('d-m-Y', time() - strtotime($data['dateXX']));
  11.   if ($data['destructionle'] != 0000-00-00)  {
  12.       echo "<table><td class='alex'>Détruit</td></table>";
  13.       }
  14.   else if  ($days > 30) {
  15.       echo "<table><td class='alexred'>$days</td></table>";
  16.       }
  17.   else {
  18.       echo "<table><td class='alex'>$days</td></table>";
  19.       }
  20.   }
  21. mysql_close();
  22. ?>


 
 
dateXX est rentré dans mysql tel quel dans un champ varchar


Message édité par athome le 28-03-2007 à 14:51:48

---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
mood
Publicité
Posté le 28-03-2007 à 14:48:46  profilanswer
 

n°1535281
sielfried
Posté le 28-03-2007 à 15:45:58  profilanswer
 

En fait j'avais pas pigé que tu voulais le nombre de jours.
 
Essaie quelque chose du genre (time() - strtotime($data['dateXX'])) / 86400 dans ce cas.


Message édité par sielfried le 28-03-2007 à 15:46:04

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1535299
athome
Posté le 28-03-2007 à 15:59:29  profilanswer
 

avec :
 

Code :
  1. $days = (time() - strtotime($data['dateXX'])) / 86400;


 
Il n'y a plus d'erreur mais la réponse me parait plus que bizarre
 
---------------------------------
   dateXX     |          nbrejour     |
---------------------------------
27-03-2007 |-9283.3338657407  |
01-03-2007 |  212.66613425926 |
---------------------------------
 
 
 


---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
n°1535307
chani_t
From Dune
Posté le 28-03-2007 à 16:02:53  profilanswer
 

je tendrais à dire qu'il interpréte mal ta dateXX... par exemple qu'il le prend  au format anglais, à savoir le mois -le jour-l'année...... d'ou la permutation que je t'avais proposée :D

 

EDIT : fais voir un date ('d-m-Y',strtotime($data['dateXX']))


Message édité par chani_t le 28-03-2007 à 16:04:07
n°1535334
athome
Posté le 28-03-2007 à 16:26:48  profilanswer
 

Code :
  1. $days = ('d-m-Y',strtotime($data['dateXX']));


 
 
donne
 
 

Citation :

Parse error: parse error, unexpected ',' in c:\program fxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnees.php on line 309



---------------
Feedback ==>  http://forum.hardware.fr/transacti [...] ser=178709
n°1535383
chani_t
From Dune
Posté le 28-03-2007 à 17:19:10  profilanswer
 

Code :
  1. echo date ('d-m-Y',strtotime($data['dateXX']));

;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Soutraction date

 

Sujets relatifs
PHP traducteur de séquences d'ADN[C#] Dataset et champ date MySQL
Débutant PHP,besoin d'aideLire des articles d'1 serveur sur 1 autre serveur?MSSQL& XML, PHP,.NET
Compression JPG crade en PHP[PHP/MYSQL] Affichage d'un champ dans une listbox
listes déroulantes l'une HTML l'autre PHPProbleme lancement programme C sur page PHP
[PHP] Fonction include dreamweaverPHP Et Win2003 Server
Plus de sujets relatifs à : [PHP] Soutraction date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR