I am trying to do something relatively simple. I have a date in this dd / MM / yyyy format, for example:
var newDate = "β11β/β06β/β2015";
And I want to convert it to a date.
This code only works in Chrome and Firefox:
new Date(newDate)
In IE11, I get Nan
So, I am trying to do this:
var parts = newDate.split("/");
var year = parts[2].trim();
var month = parts[1].trim();
var day = parts[0].trim();
var dt = new Date(Number(year), Number(month) - 1, Number(day));
Which should work, but I came across a very strange error.
If you try this code:
function myFunction() {
var newDate = "β11β/β06β/β2015";
var parts = newDate.split('/');
var year = parts[2].trim();
var a = year;
var b = Number(year);
var c = parseInt(year, 10);
var d = parts;
var n = a + "<br>" + b + "<br>" + c + "<br>" + d;
document.getElementById("demo").innerHTML = n;
}
<p>Click the button to see the parse error.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
Run codeHide resultThen in IE it adds a mystery symbol, and it prints Γ½2015, and in chrome displays ?2015.
Actually the meaning of the parts in IE is: Γ½11Γ½,Γ½06Γ½,Γ½2015
In Chrome:?11?,?06?,?2015
I canβt understand where these secret characters came from! My source line is just"β11β/β06β/β2015"
There seems to be no way to make something so simple, like parsing an integer from a simple string.
Fiddle , , , Number("2015") Nan, ?
UPDATE
, , :
var date = new Date();
var dateToSave = date.toLocaleDateString();
IE.
Chrome Firefox U+200E , IE !
toLocaleDateString() kendo.toString(selectedValue, "dd/MM/yyyy") .
moment.js :
moment(selectedValue).format("DD/MM/YYYY"), - IE11 U+200E.