MFC86
MFC86

Reputation: 1

Javascript issue with internet explorer, works fine in google chrome but not in ie,

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

Answers (2)

vol7ron
vol7ron

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:

  • adjust your function to receive the input as you want to send it
  • adjust your function call to send the proper arguments as defined by your function parameters
  • use another library, like moment.js to do all the calculations -- it's one of the best date management libraries available for JS

Upvotes: 0

virtyaluk
virtyaluk

Reputation: 145

What actually <?php echo $date1; ?> returns? Because it seems like countup expects 3 arguments but takes only 1.

Upvotes: 1

Related Questions