Skip to content

Commit 6a907f1

Browse files
author
Daniel Schuetter
committed
make sure localDateValue() takes local daylight savings into account
1 parent 01a5fe0 commit 6a907f1

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/js/datetimepicker.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,13 @@
420420
}
421421

422422
function DateObject () {
423+
var constructorObject = arguments[0]
423424
var tempDate = new Date()
425+
426+
if (constructorObject && constructorObject.utcDateValue) {
427+
tempDate.setTime(constructorObject.utcDateValue)
428+
}
429+
424430
var localOffset = tempDate.getTimezoneOffset() * 60000
425431

426432
this.utcDateValue = tempDate.getTime()
@@ -432,8 +438,6 @@
432438

433439
var validProperties = ['active', 'current', 'display', 'future', 'past', 'selectable', 'utcDateValue']
434440

435-
var constructorObject = arguments[0]
436-
437441
Object.keys(constructorObject).filter(function (key) {
438442
return validProperties.indexOf(key) >= 0
439443
}).forEach(function (key) {

test/configuration/beforeRender.spec.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,16 @@ describe('beforeRender', function () {
7272
it('in day view $dates parameter contains 42 members', function () {
7373
$rootScope.date = moment('2014-01-01T00:00:00.000').toDate()
7474

75-
var offset = new Date().getTimezoneOffset() * 60000
75+
var offsetDate = new Date()
7676

7777
$rootScope.beforeRender = function (dates) {
7878
expect(dates.length).toBe(42)
7979
expect(dates[0].utcDateValue).toBe(1388275200000)
80-
expect(dates[0].localDateValue()).toBe(1388275200000 + offset)
80+
offsetDate.setTime(dates[0].utcDateValue)
81+
expect(dates[0].localDateValue()).toBe(1388275200000 + (offsetDate.getTimezoneOffset() * 60000))
8182
expect(dates[11].utcDateValue).toBe(1389225600000)
82-
expect(dates[11].localDateValue()).toBe(1389225600000 + offset)
83+
offsetDate.setTime(dates[11].utcDateValue)
84+
expect(dates[11].localDateValue()).toBe(1389225600000 + (offsetDate.getTimezoneOffset() * 60000))
8385
}
8486

8587
spyOn($rootScope, 'beforeRender').and.callThrough()

0 commit comments

Comments
 (0)