javascript - date object returns different date when parsing using D3.time.format -


var startdate = new date('2013-05-13'); var date_format = d3.time.format("%m/%d"); 

if

startdate = date_format(startdate);  

i "05/12" instead of "05/13". has clue why happening?

don’t use date(string) constructor parse dates; varies browser browser. (but not guaranteed) interpretation of "2013-05-13" iso8601 string in utc time. thus, if run statement in javascript console, see:

> new date("2013-05-13") sun may 12 2013 17:00:00 gmt-0700 (pdt) 

the string interpreted in utc time date construct, while returned date object in local time. may 13, midnight utc may 12 5pm pdt, when format in local time using d3.time.format, may 12.

you switch using d3.time.format.utc("%m/%d") format date, you’re still dependent on ambiguous behavior of date(string) constructor. so, instead…

as @minikomi suggested, create d3.time.format parse date string: d3.time.format("%y-%m-%d"), format.parse("2013-05-13"). or use multi-argument date constructor: new date(2013, 4, 13), note months start @ 0 rather usual one.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -