Skip to content

Commit

Permalink
fix resetting date
Browse files Browse the repository at this point in the history
  • Loading branch information
riipah committed Jun 3, 2018
1 parent 94cae5a commit f6f92f1
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 8 deletions.
8 changes: 6 additions & 2 deletions VocaDbWeb/Scripts/Helpers/DateTimeHelper.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


module vdb.helpers {

export class DateTimeHelper {
Expand All @@ -7,13 +7,17 @@ module vdb.helpers {
return (val < 10 ? "0" + val : val);
}

public static converToLocal(utcDate: Date) {
public static convertToLocal(utcDate: Date) {
if (utcDate == null)
return null;
const momentDate = moment.utc(utcDate);
return new Date(momentDate.year(), momentDate.month(), momentDate.date());
//return new Date(utcDate.getFullYear(), utcDate.getMonth(), utcDate.getDate());
}

public static convertToUtc(localDate: Date) {
if (localDate == null)
return null;
return moment.utc([localDate.getFullYear(), localDate.getMonth(), localDate.getDate()]).toDate();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


interface KnockoutBindingHandlers {
datepicker: KnockoutBindingHandler;
}
Expand All @@ -19,13 +19,13 @@ ko.bindingHandlers.datepicker = {
$(element).datepicker({ dateFormat: options.dateFormat });

if (value) {
$(element).datepicker('setDate', vdb.helpers.DateTimeHelper.converToLocal(value));
$(element).datepicker('setDate', vdb.helpers.DateTimeHelper.convertToLocal(value));
}

if (ko.isObservable(options.value)) {
var subscription = options.value.subscribe((newValue: Date) => {
// datepicker displays time in local time, so we convert it back to local
$(element).datepicker('setDate', vdb.helpers.DateTimeHelper.converToLocal(newValue));
$(element).datepicker('setDate', vdb.helpers.DateTimeHelper.convertToLocal(newValue));
});

ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
Expand Down
22 changes: 19 additions & 3 deletions VocaDbWeb/Scripts/Tests/Helpers/DateTimeHelperTests.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@


module vdb.tests.helpers {

QUnit.module("DateTimeHelper");

QUnit.test("converToLocal", () => {
QUnit.test("convertToLocal", () => {

var date = new Date(2016, 9, 3);
date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
var result = vdb.helpers.DateTimeHelper.converToLocal(date);
var result = vdb.helpers.DateTimeHelper.convertToLocal(date);
var expected = new Date(2016, 9, 3);

QUnit.equal(result.toString(), expected.toString());

});

QUnit.test("convertToLocal null", () => {

var result = vdb.helpers.DateTimeHelper.convertToLocal(null);

QUnit.equal(result, null, "result");

});

QUnit.test("convertToUtc", () => {

var date = new Date(2016, 9, 3);
Expand All @@ -24,4 +32,12 @@ module vdb.tests.helpers {

});

QUnit.test("convertToUtc null", () => {

var result = vdb.helpers.DateTimeHelper.convertToUtc(null);

QUnit.equal(result, null, "result");

});

}

0 comments on commit f6f92f1

Please sign in to comment.