javascript - new Date(epoch) returning invalid date inside Ember component -
i have date-filter
component using in ember application works on initial render, not on page reload, or if save file (which triggers application live update).
in main template of application, render date-filter passing unix timestamp
{{date-filter unixepoch=item.date}}
then, in components/date-filter.js
, use computed property called timeconverter
change unix epoch time string formatted according user's language of choice, , in templates/components/date-filter.hbs
file {{timeconverter}}
display results
timeconverter: function(){ //step 1: epoch passed in component var epoch = this.get('unixepoch'); //step 2: create human readable date string such `jun 29, 2015, 12:36pm` var datestring = new date(epoch) //do language formatting --code omitted problem step2 }
it step 2
fails (returning invalid date
) if refresh page or save file. returns proper date string first time component called. if new date(epoch)
in parent component, , try pass result in component (to foreign language formatting), i'm having same problem.
question: how can figure out what's happening inside new date(epoch), or whether it's issue related component?
i suspect epoch
value string (of digits). if so, then
var datestring = new date(+epoch); // note ------------------^
...will fix it. note javascript uses newer "milliseconds since epoch" rather older (original) "seconds since epoch." if doing starts giving dates, they're further in time expecting, might want epoch * 1000
.
if it's string isn't digits, it's not epoch value @ all. only string value specification requires new date
understand 1 added in ecmascript5 , fixed in ecmascript6 (regarding when there's no timezone indicator).
Comments
Post a Comment