Knockoutjs Data Value Converter
HTML
<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.debug.js"></script>
Epoch: <input type="text" data-bind="value: dateOfBirth" /><br/>
Formatted Date: <input type="text" data-bind="value: formattedDate" />
JavaScript
var now = new Date();
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
var jsonDate = "/Date(" + today.getTime() + ")/";
function ViewModel() {
var self = this;
self.dateOfBirth = ko.observable(jsonDate);
self.formattedDate = ko.computed({
read: function() {
var dob = new Date(parseInt(self.dateOfBirth().substr(6)));
return dob.getFullYear() + '-' + (dob.getMonth() + 1) + '-' + dob.getDate();
},
write: function(value) {
var parts = value.split('-');
self.dateOfBirth("/Date(" + new Date(parts[0], parts[1] - 1, parts[2]).getTime() + ")/");
}
})
}
ko.applyBindings(new ViewModel());