javascript - JS: Bug converting string to Date -
i converting data object json , json.stringify , json.parse.
this works great, on devices on samsung galaxy sii line:
console.log(jsonobj.gebdat+"::"+new date(jsonobj.gebdat)); i output:
1973-07-01t10:49:25.134z::invalid date
i implementing @ this answer, , works devices, doing wrong??
update
to clarify question. create string calling
var stringtosave = json.stringify({gebdat: dataclass.gebdat, <here more variables>}); then save it. later, load string , parse with
var jsonobj = json.parse(stringtosave); then, try set date again (calling log before line) with
console.log(jsonobj.gebdat+"::"+new date(jsonobj.gebdat)); this.gebdat = new date(jsonobj.gebdat); the log gives me invalid date shown above, , when represent date displays nan.nan.nan instead of expected 01.07.1973
1.date string formats implementation dependent. recommended use timestamps when save dates.
var timestamp = date.parse( new date() );//1372675910000 now can use saved timestamps recreate date later
var date = new date(1372675910000);//mon jul 01 2013 16:21:50 gmt+0530 (india standard time) 2.for simple transition current solution, in case dont handle different timezones,
var datestring = jsonobj.getdat.substring(0,23); var datepart = datestring.split('t')[0].split('-'); var timepart = datestring.split('t')[1].split(/[:.]/); var dateoj = new date(datepart[0], datepart[1], datepart[2], timepart[0], timepart[1], timepart[2]); let me clarify 1, reference update.
var stringtosave = json.stringify({gebdat: date.parse(dataclass.gebdat), <here more variables>}); var jsonobj = json.parse(stringtosave); console.log('timestamp :' + jsonobj.gebdat);//1372680083000 console.log(new date(jsonobj.gebdat));//mon jul 01 2013 17:31:23 gmt+0530 (india standard time)
Comments
Post a Comment