[英]Unable to convert the string date and time to format using Moment.JS
[英]How to convert date into other format in moment.js using KnockoutJs Binding?
在我的Web應用程序中,我對日期使用Bootstrap-datepicker-and-KnockoutJs綁定,如何將日期轉換成其他格式?
self.date = ko.observable(moment())
.extend({ required: true });
默認顯示
2015年8月6日星期四,格林尼治標准時間+0530
datepicker之后顯示
2015年8月6日星期四,格林尼治標准時間+0530(印度標准時間)
試圖將此值轉換為其他
moment(self.date, '2015-08-06T011:32:21.196Z')
表明
失效日期
在這里我使用下面的敲除綁定顯示
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options).on("changeDate", function (ev) {
var observable = valueAccessor();
observable(ev.date);
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).datepicker("setValue", value);
}
};
我該怎么做,這是正確的方法嗎? 提出解決方案,謝謝
這是帶有MomentJS的KnockoutJS的自定義綁定實現
https://github.com/adrotec/knockout-date-bindings
另一個選擇是定義ko.computed()
,它將使用時間戳作為因變量
var Vm = function() { var self = this; self.date = ko.observable(); self.dateFormatted = ko.computed(function() { return moment(self.date()).format("DD/MM/YYYY HH:mm:ss") }); setInterval(function() { self.date(new Date()); }, 1000); }; var vm = new Vm(); ko.applyBindings(vm, $("body")[0]);
<!DOCTYPE html> <html> <head> <script data-require="jquery@2.1.3" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"></script> <script data-require="knockout@3.3.0" data-semver="3.3.0" src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script> <script data-require="moment.js@2.10.2" data-semver="2.10.2" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js"></script> <link rel="stylesheet" href="style.css" /> <script src="script.js"></script> </head> <body> <h1 data-bind="text: dateFormatted"></h1> <script> var Vm = function() { var self = this; self.date = ko.observable(); self.dateFormatted = ko.computed(function() { return moment(self.date()).format("DD/MM/YYYY HH:mm:ss") }); setInterval(function() { self.date(new Date()); }, 1000); }; var vm = new Vm(); ko.applyBindings(vm, $("body")[0]); </script> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.