Reputation: 1
Hi i have an issue with ie not displaying my javascript, im a little puzzled as it works fine in google chrome., i have tried f12 debugging and enabled javascript but not with any luck so any help would be much appreciated. In chrome it shows correct amount of days and in ie it just says NaN.
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
function countup(yr,m,d){
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy
var paststring=montharray[m-1]+" "+d+", "+yr
var difference=(Math.round((Date.parse(todaystring)-Date.parse(paststring))/(24*60*60*1000))*1)
difference+=" days"
document.write("<span style=\"color:#A4A4A4;font-size: 3em; \"> It\'s been "+difference+" since the last incident.<\/span>")
}
//enter the count up date using the format year/month/day
countup('<?php echo $date1; ?>')
Upvotes: 0
Views: 1325
Reputation: 42149
If your JavaScript comment is correct, you're passing the value as 'YYYY/MM/DD', which is not the format your function expects. Your function expects three different numbers/strings countup('02','25','2016')
, not countup('2016/02/25')
The error occurs at your var paststring = montharray[m-1]+" "+d+", "+yr
. This will result as undefined undefined, 2016/02/25
, which is not a valid date.
The reason it works in Chrome is because Date.parse('undefined undefined, 2016/02/25')
can actually produce the date, whereas other browsers (including Firefox) do the valiant thing and fail.
See this answer and this answer for a little more information.
To fix your code, choose one:
Upvotes: 0
Reputation: 145
What actually <?php echo $date1; ?>
returns? Because it seems like countup
expects 3 arguments but takes only 1.
Upvotes: 1