How To Handle Dates In Backbone?
Solution 1:
I would advice using UNIX time (number of seconds/milliseconds from 1970) both in model and in the interface and converting to readable date only in View
.
So the server both sends and receives dates as numbers like 1328281766454
and this is how you store them in Backbone.Model
. When it has to be rendered in View
you can simply call:
new Date(this.model.get('someTime')); //Fri Feb 03 2012 16:09:26 GMT+0100 (CET)
The same can be done on the server side. Believe me, this is the simplest and most portable way of transfrering dates without all these time-zone issues.
Solution 2:
I'd do it one of two places:
On the server:
This probably makes the most sense, since your server-side implementation is really the one that needs the DATETIME representation; your client code shouldn't have to care at all.
In
toJSON()
on your model:If you must do it on the client, override
Backbone.Model
'stoJSON()
for your model and update it there. Example:toJSON: function () { var json = Backbone.Model.prototype.toJSON.call(this); json.date = convertDate(this.get('date')); return json; }
If you do this, you'll need to convert the date back, either in your model's
initialize()
orparse()
function.
Solution 3:
May not be the answer your looking for - but have seen folks use moment.js to format time in backbone -
Post a Comment for "How To Handle Dates In Backbone?"