From e9134d731dd723616831e41ec0bfda14486e3562 Mon Sep 17 00:00:00 2001 From: Aymeric Bouzy Date: Wed, 23 Nov 2016 15:33:17 +0100 Subject: [PATCH] create setTime function --- src/lib/moment/start-end-of.js | 5 +++-- src/lib/units/hour.js | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/moment/start-end-of.js b/src/lib/moment/start-end-of.js index 02f982479a..dedfdb7451 100644 --- a/src/lib/moment/start-end-of.js +++ b/src/lib/moment/start-end-of.js @@ -1,4 +1,5 @@ import { normalizeUnits } from '../units/aliases'; +import { setTime } from '../units/hour'; export function startOf (units) { units = normalizeUnits(units); @@ -16,8 +17,8 @@ export function startOf (units) { case 'isoWeek': case 'day': case 'date': - this.hours(0); - /* falls through */ + setTime(this, 0, 0, 0, 0); + break; case 'hour': this.minutes(0); /* falls through */ diff --git a/src/lib/units/hour.js b/src/lib/units/hour.js index d5733fbbcf..8a7d984910 100644 --- a/src/lib/units/hour.js +++ b/src/lib/units/hour.js @@ -8,6 +8,7 @@ import { HOUR, MINUTE, SECOND } from './constants'; import toInt from '../utils/to-int'; import zeroFill from '../utils/zero-fill'; import getParsingFlags from '../create/parsing-flags'; +import { hooks } from '../utils/hooks'; // FORMATTING @@ -136,3 +137,10 @@ export function localeMeridiem (hours, minutes, isLower) { // a new timezone) makes sense. Adding/subtracting hours does not follow // this rule. export var getSetHour = makeGetSet('Hours', true); + +export function setTime (mom, hours, minutes, seconds, milliseconds) { + if (mom.isValid()) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Hours'](hours, minutes, seconds, milliseconds); + hooks.updateOffset(mom, true); + } +}