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 : Sélectionner tout - Visualiser dans une fenêtre à part
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