AngularのUI Bootstrap Datepickerを変更して、週選択モードを許可します。これを有効にするには、activeDate
を特定の週の最初の日曜日に設定する必要があります。したがって、日付を選択すると、8/29/2016のような月曜日と言えば、その選択を先週の日曜日の8日/ 28/16。Moment.JS与えられた日の前に日曜日を取得する
これは選択機能の外観です。アラートが一致するブロックelse if
の日曜日のロジックへの変換に興味がある場合。
$scope.select = function(date) {
if ($scope.datepickerMode === self.minMode) {
var dt = ngModelCtrl.$viewValue ? dateParser.fromTimezone(new Date(ngModelCtrl.$viewValue), ngModelOptions.timezone) : new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
dt = dateParser.toTimezone(dt, ngModelOptions.timezone);
ngModelCtrl.$setViewValue(dt);
ngModelCtrl.$render();
}
else if($scope.datepickerMode =="week")
{
alert("Match!");
self.activeDate = date.firstSundayofthatweek() //what do I actually put here using Moment.js?
setMode(self.modes[self.modes.indexOf($scope.datepickerMode) - 1]);
$scope.$emit('uib:datepicker.mode');
}
else {
self.activeDate = date;
setMode(self.modes[self.modes.indexOf($scope.datepickerMode) - 1]);
$scope.$emit('uib:datepicker.mode');
}
$scope.$broadcast('uib:datepicker.focus');
};
私はmoment.jsを使用していますが、その方法をドキュメントで把握することはできません。バニラJSの答えも高く評価されます。関数に渡されるdate
は、日付オブジェクトです。
モーメントのドキュメントが提案する次のいずれか
moment().day(-7);
または
moment().weekday(-7);
を私は...日付オブジェクトではなく、瞬間を渡していますので、私は変換したり、チェーンか何かか?申し訳ありません少し混乱しています...また、日付オブジェクトを返す必要がありますself.activeDate
としてそれを解析し、私はあなたが概説されている部分を理解するが、私はどちらも通過も返却または瞬間ですこの場合、2つの日付オブジェクト間の仲介者としてmoment.jsをどのように利用すればよいですか? –
なぜ中間体としてですか?日付を扱うたびに瞬間を利用してください。jsの 'Date' @SummerDeveloperよりずっと便利です。 – baao