Convertir timestamp et datetime en javascript en tenant compte du fuseau horaire
Bonsoir,
Je code un site dont le serveur se trouve au Canada et moi je suis en France. Je souhaite afficher un historique. Le problème est que dans la base de données à cause du décalage horaire j'ai par exemple 2015-06-15 12:48:24 à la place de 2015-06-15 18:48:24
J'utilise donc une fonction javascript écrite moi même qui convertit la date du format dateTime vers le format timestamp et ensuite affiche l'heure selon ce modèle :
Le 15/06/2015 à 18:48:24
J'ai fais une page qui affiche la date et l'heure courante ainsi que la date et l'heure qui correspondent au timestamp 1429089071
http://mmfr2-online.net/test.php
Pour tester je demande à quelqu'un qui habite au Liban d'aller sur la page et le code fonctionne car à la place de "Le 15/04/2015 à 11:11:11" il voit "Le 15/04/2015 à 12:11:11" et effectivement le Liban a une heure de plus que nous.
Le problème c'est que maintenant j'utilise une base de données qui contient "2015-06-15 12:47:44" et je souhaite afficher la date et l'heure selon le modèle que j'ai donné avant en tenant compte du fuseau horaire (2015-06-15 12:47:44 est l'heure du serveur au Canada au moment de l'ajout de la ligne).
Je fais donc ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <script>
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
function convertirTimestamp(timestamp)
{
var timestampnew = toTimestamp(timestamp);
var date = new Date(timestampnew * 1000);
var jour = date.getDate();
var mois = date.getMonth()+1;
if (mois < 10) { mois = '0' + mois; }
var annee = date.getFullYear();
var chaine = "Le " + jour + "/" + mois + "/" + annee + " à " + date.toLocaleTimeString();
document.write(chaine);
return chaine;
}
</script> |
Je lance convertirTimestamp et en paramètre je passe 2015-06-15 12:47:44 et cela le convertis d'abord en timestamp avec le première fonction, on arrive donc à un cas similaire (seule l'heure change) à celui qui se trouve sur la page de test.
Le problème est que le document.write affiche "Le 15/06/2015 à 12:47:44" donc exactement ce qui est entré dans la fonction ...
Est ce que quelqu'un sait comment faire ?
Merci d'avance