webForumDet fria alternativet

Safari och datum med new Date();

JavaScript

2 svar · 341 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Tjena hej,

Har problem med Safari. Här är koden:

var Data;
var CurrDate;

Data = [
		{"date":"2011-12-01","title":"foo","text":"bar"},
		{"date":"2011-12-02","title":"foo","text":"bar"}
                // o.s.v. fram till 2011-12-24
	   ];
CurrDate = new Date("2011-12-02");

$(document).ready(function(){
	$.each(Data, function(x,y){
		LoopDate = new Date(y.date);
		if(CurrDate <= LoopDate) {
			Navigate(x);
			return false;
		}
		$('#Img' + x).attr("src", "./images/thumbs/" + y.imageafter);
	});
});

(Det finns fler saker i jsonobj. förutom date, text och title).

Koden fungerar så att den ska logga igenom mitt JSON-objekt och när "dagens datum" kommer ska koden avbrytas. Det här fungerar fint i IE7,8,9, Firefox 7,8 och Chrome. Men i Safari körs alla datum igenom utan att stanna där den ska.

Jag har inte en aning vad det kan bero på. Det fungerar som sagt i alla webbläsare utom Safari. Jag har testat på PC och min kund på MAC, så verkar vara genomgående på bägge plattformarna.

Någon som vet vad det kan röra sig om?

Medlem sedan feb. 20034 441 inlägg
#2

Hittade felkonsollen i Safari och i $.each-loopen får jag "Invalid date" när jag skriver ut LoopDate med console.log();.

Den här raden:
LoopDate = new Date(y.date);

Fungerar som sagt i dom andra läsarna, what's up med Safari?
T.ex. Firefox skriver ut det här i konsollen på samma rad:
Thu Dec 01 2011 08:00:00 GMT+0800 (China Standard Time)

Så där tolkas det som ett datum.

Medlem sedan feb. 20034 441 inlägg
#3

Googlade och hittade det här:
http://stackoverflow.com/questions/4622732/new-date-using-javascript-in-safari

Inlägg #2 fungerar perfekt!

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)