objet date defaillant???

objet date defaillant??? - HTML/CSS - Programmation

Marsh Posté le 09-11-2006 à 13:06:31    

ct est un objet de type Date

Code :
  1. alert(ct.getDate()+'/'+(ct.getMonth()+1)+'/'+ct.getFullYear()+' '+ct.getHours()+':'+ct.getMinutes()+
  2. ':'+ct.getSeconds()+' '+Math.floor(ct.getTime()/1000)); //+1 est necessaire car en javascript les mois sont des 0 a 11...  
  3. //je divise par 1000 car ca renvoie le nombre de secondes , or je voudrais le temps Unix....


, au runtime il m'affiche:
 
16/10/2006 0:0:0 1160949600
 
or si je passe le timestamp dans un converter  (http://www.onlineconversion.com/unix_time.htm) j'obtiens :
 
Sun, 15 Oct 2006 22:00:00 GMT
 
(normalement le timestamp aurait du etre 1160956800)
 
perso je vois pas ou je me suis planté


Message édité par red faction le 09-11-2006 à 13:47:37
Reply

Marsh Posté le 09-11-2006 à 13:06:31   

Reply

Marsh Posté le 09-11-2006 à 15:56:37    

[:yoyoz] j'en ai vraiment besoin
 

Reply

Marsh Posté le 09-11-2006 à 16:15:10    

Tu t'emmerdes pour rien à mon avis...  
J'aurais fait un truc dans le genre:

Code :
  1. function toUnixTimestamp(d){
  2.   return Math.floor((d - new Date(1970,0,1))/1000);
  3. }
  4.   ...
  5.   var taDate = new Date();
  6.   alert(toUnixTimestamp(taDate));


Et genre si tu veux vraiment te la péter, tu la rajoutes dans le prototype de Date;

Code :
  1. Date.prototype.toUnixTimestamp = function (){
  2.   return Math.floor((this - new Date(1970,0,1))/1000);
  3. }
  4. //et du coup tu peux faire direct
  5. alert(taDate.toUnixTimestamp());


Message édité par anapajari le 09-11-2006 à 16:15:41
Reply

Marsh Posté le 09-11-2006 à 16:37:18    

merci pour tes conseils  
 
enfait jutilise date car il me sert aussi a afficher un calendrier style google calendar (il s'agit d'un agenda)
 
et c bien pratique de faire ct.setDate(ct.getDate+1) entre chaque cellule  
puis des ct.getDay pour savoir si c un weekend, etc...

Reply

Marsh Posté le 09-11-2006 à 17:00:06    

je t'ai jamais dit de pas l'utiliser l'objet date, au contraire je t'ai donné la façon pour lui rajouter une methode toUnixTimestamp !!!

Reply

Marsh Posté le 10-11-2006 à 11:39:48    

new Date(1970,0,1) me renvoie -3600 cad une heure avant 1970 est ce normal???? (new Date(1970,0,1,1,0,0) me renvoi bien 0 lui)
 
soustraire par zero est il vraiment necessaire ????
 
 
sinon   return Math.floor((pDate - new Date(1970,0,1,1,0,0))/1000); me renvoi toujours bel est bien 1160949600 cad que nous sommes toujours le  Sun, 15 Oct 2006 22:00:00 GMT  :sweat:  
 
soit JS cest de la merde soit je c pas lutiliser...

Reply

Marsh Posté le 10-11-2006 à 11:48:48    

La soustraction par zéro comme tu dis c'est une ruse.
Quand tu fais la soustraction entre deux objets de type date, ça te renvoie le nombre de millisecondes entre ceux deux dates.
 
Sinon j'ai testé le code que je t'avais donné et ça marche très bien:

Code :
  1. Date.prototype.toUnixTimestamp = function(){
  2.     return Math.floor((this - new Date(1970,0,1))/1000);
  3.   }
  4.   var taDate = new Date();
  5.   alert(taDate.toUnixTimestamp());


donne "1163159076"  soit  "Fri, 10 Nov 2006 11:44:36 GMT"
 
T'es sur que ton ordi est à la bonne date?

Reply

Marsh Posté le 10-11-2006 à 12:10:51    

j'y comprends plus rien  
 
1160949600 me donne le 15 octobre sur le site que jai donné dans le premier poste (et sur dautre site du genre aussi)
 
tandis que 1160949600 me donne 16/10/2006 12:00:00  avec un formatage date('d/m/Y h:i:s',1160949600) par php....
EDIT : javais pa rafraichi la page donc pa vu ton post


Message édité par red faction le 10-11-2006 à 12:29:54
Reply

Marsh Posté le 10-11-2006 à 12:34:57    

je pense que ca depent du timeZone, par exemple ici il donnent un time zone et les resultat peuvent differer http://www.4webhelp.net/us/timesta [...] timezone=0
 
peut etre que php et javascript utilisent aussi des timezone... mais ne lindique pa,  
 
ex : javascript utiliserait un timezone -2 par rapport a php ce qui expliquerait le decalage...

Reply

Marsh Posté le 10-11-2006 à 13:32:37    

comment tu construis l'objet date sur lequel tu fais ton test?
Tu aurais pas omis d'utiliser les fonctions setUTC* ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed