2010-06-18 14 views
0

Quel est l'équivalent JavaScript au code PHP suivant:JavaScript et temps

$expTime = time() + (5 * 60 * 60); // now plus 5 hours (5 hour; 60 mins; 60 secs) 
$expTimeStr = gmdate('Y-m-d\TH:i:s\Z', $expTime); 

Répondre

1
var expTime = new Date((+new Date()) + (5 * 60 * 60000)) 
var m   = expTime.getMonth() + 1 
var d   = expTime.getDate() 
var y   = expTime.getFullYear() 
var h   = expTime.getHours() 
var i   = expTime.getMinutes() 
var s   = expTime.getSeconds() 
var expTimeStr = y +"-"+ m +"-"+ d +" "+ h +":"+ i +":"+ s 
+0

Cela ne va pas fonctionner. Si l'heure est 23:00, alors l'heure sera correcte, mais l'affichage du jour sera erroné. –

+0

fixe sans détour en utilisant la méthode gnarfs pour +5 heures –

+0

C'est une bonne solution! J'ai changé quelque chose de toute façon: c'est bizarre que vous n'ayez pas de zéro pour le mois, le jour, les minutes et les secondes (même les heures). Donc, à qui pourrait être intéressé: 'exp expTimeStr = y +" - "+ (m.toString(). Longueur <2? '0': '') + m +" - "+ (d.toString(). longueur <2? '0': '') + d + ... ' – pmrotule

1

La fonction gmdate() ne transfère pas bien JavaScript ... Il y a un gmdate() port on phpjs qui utilise le date() function from phpjs pour faire le complexe formatage.

Pour calculer la date:

var time = new Date((+new Date()) + (5 * 60 * 60000)); // js times are ms 

alert(time.toUTCString()); // quick JS method to return UTC time 

Le (+new Date()) force la Date() dans un entier avant d'ajouter ms, et en la passant au constructeur new Date().