Date et Heure json

Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 6 janv. 2017 à 18:15
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 11 janv. 2017 à 11:11
Bonjour à tous !

Je rencontre un soucis en javascript et sollicite votre aide.

En fait, j'ai un chrono auquel je voudrais remplacer la date du PC par la date de la zone de connexion.

En fait, je n'arrive pas à insérer le code json dans mon script afin que celui-ci fonctionne.
Pouvez-vous m'aider svp ?
<script>
	function myCallback(json){
	var ladate = new Date(json.dateString);
		document.write(ladate);
	}
</script>

<br><br><br>

<span id="dhour"></span> h <span id="dmin"></span> min <span id="dsec"></span> sec
<div id="count2"></div>
<div class="numbers" id="dday" hidden="true"></div>



<script>
var ladate=new Date()

var year=ladate.getFullYear();
var month=ladate.getMonth()+1;
var day=ladate.getDate();
var hour=19;
var minute=10;
var tz=0;

var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function countdown(yr,m,d,hr,min){
theyear=yr;themonth=m;theday=d;thehour=hr;theminute=min;
var today= new Date(); 
var todayy=today.getYear();
if (todayy < 1000) {todayy+=1900; }

var todaym=today.getMonth();
var todayd=today.getDate();
var todayh=today.getHours();
var todaymin=today.getMinutes();
var todaysec=today.getSeconds();
var todaystring1=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
var todaystring=Date.parse(todaystring1)+(tz*1000*60*60);
var futurestring1=(montharray[m-1]+" "+d+", "+yr+" "+hr+":"+min);
var futurestring=Date.parse(futurestring1)-(today.getTimezoneOffset()*(1000*60));
var dd=futurestring-todaystring;
var dday=Math.floor(dd/(60*60*1000*24)*1);
var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);

if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=0){
document.getElementById('count2').style.display="inline";
document.getElementById('after').style.display="none";

document.getElementById('dday').style.display="none";
document.getElementById('dhour').style.display="none";
document.getElementById('dmin').style.display="none";
document.getElementById('dsec').style.display="none";
document.getElementById('days').style.display="none";
document.getElementById('hours').style.display="none";
document.getElementById('minutes').style.display="none";
document.getElementById('seconds').style.display="none";
return;
}else {
document.getElementById('count2').style.display="none";
document.getElementById('dday').innerHTML=dday;
document.getElementById('dhour').innerHTML=dhour;
document.getElementById('dmin').innerHTML=dmin;
document.getElementById('dsec').innerHTML=dsec;
setTimeout("countdown(theyear,themonth,theday,thehour,theminute)",1000);}
}

countdown(year,month,day,hour,minute);
</script>

<script type="text/javascript" src=""quot;http://www.timeapi.org/utc/now.json?callback=myCallback"></script>


Cordialement,
Sinistrus

1 réponse

Salut,
avez vous essayé ceci?

http://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp

Sinon JSon ne retient aucune date. Si vous sérialisez une date en JSon il faut faire l'inverse ensuite.
Cela reviendra à faire plusieurs variable JSon pour la date, autant retenir que le timestamp pour encore plus simple :)
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
6 janv. 2017 à 21:54
Merci Zomato de t'intéresser à mon soucis.

J'ai essayé gettimezoneoffset en effet mais il m'affichait toujours l'heure du PC et non pas celui de "londres" ou "rome" par exemple... c'est pourquoi je suis passé par JSon.

Je ne sais plus quoi faire :\
0
justement :


The getTimezoneOffset() method returns the time difference between UTC time and local time, in minutes.

Donc si -60 === GMT-1
si +120 === GMT+2
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 janv. 2017 à 12:20
Je récupère comme retour 0 de la méthode getTimezoneOffset(), donc les conditions ne servent à rien. Mon problème c'est que ce compte à rebours récupère l'heure du PC et non l'heure universelle.
Alors que faire dans ce cas ?
J'ai essayé plusieurs scripts de Javascript mais en vain...
0
Yo,

non c'était pas une condition mais un état de fait ou plutôt une addition à faire.
Si vous avez 0 === aucun écart avec la date GMT(GMT 0), encore une fois(je me dit vraiment que vous avez mal lu) ce qui paraît assez probable en France situé proche du méridien qui définit les décalages horaires.

l'heure universelle c'est nouveau ça? car justement à cause du fait que la terre circonvolue autour du soleil il y a des heures différentes selon la position longitudinale des pays et donc des fuseaux horaires basé sur la position du méridien de Greenwich(GMT , UTC pour Universal Time Change):

https://fr.wikipedia.org/wiki/Fuseau_horaire
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
11 janv. 2017 à 11:11
J'y arrive pas !
Tous mes tests sont voués à l'échec :\
0