日付を表示する日付フィールドがあります。
<input type="text" data-bind='value: model.BeginDateTime'>
次に、月初からの時間を表示するフィールドがあります。
<input type="text" data-bind='value: model.BeginHour()'>
計算された関数から値を取得します
self.model.BeginHour = ko.computed(function(){
var dateToConvert = new Date(self.model.BeginDateTime());
var zeroDate = new Date(dateToConvert.getFullYear(), dateToConvert.getMonth(), 01, 0, 0, 0, 0);
var millisecondsDifference = (dateToConvert - zeroDate);
var hoursDifference = (millisecondsDifference / ((1000 * 60) * 60));
return Math.round(hoursDifference);
});
ただし、時間の値が変更された場合は日付を更新できる必要があります。
たとえば、日付が 2012 年 2 月 1 日 8:00:00 PM の場合、BeginHour の値は 20 です。BeginHour の値を 20 から 21 に変更できるようにしたいので、model.BeginDateTime を 2 に更新する必要があります。 /2012 年 1 月 9:00:00 午後。計算されたものは現在、時間を表示するためにうまく機能していますが、時間フィールドを更新すると機能しません。ありがとう