Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Datepicker w/ Moment parseDate parsing strings results in good date object not Invalid Date #1907

Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions js/datepicker.js
Expand Up @@ -395,13 +395,13 @@
return (true === md.isValid()) ? md.toDate() : BAD_DATE;
};

tryMomentParseAll = function (d, parseFunc1, parseFunc2) {
var pd = parseFunc1(d);
tryMomentParseAll = function (rawDateString, parseFunc1, parseFunc2) {
var pd = parseFunc1(rawDateString);
if (!self.isInvalidDate(pd)) {
return pd;
}

pd = parseFunc2(pd);
pd = parseFunc2(rawDateString);
if (!self.isInvalidDate(pd)) {
return pd;
}
Expand Down
14 changes: 13 additions & 1 deletion test/datepicker-moment-test.js
Expand Up @@ -129,7 +129,7 @@ define( function ( require ) {
assert.equal( date1, date2, "getValue alias matches getDate" );
} );

QUnit.test( "should set new date using setDate method", function( assert ) {
QUnit.test( "should set new date using setDate method passing a Date object", function( assert ) {
var $datepicker = $( html ).datepicker();
var newDate = new Date( 1987, 2, 31 );
var datepickerDate;
Expand All @@ -140,6 +140,18 @@ define( function ( require ) {
assert.equal( datepickerDate.getTime(), newDate.getTime(), "setDate method works" );
} );

QUnit.test( "should set new date using setDate method passing a ISO string", function( assert ) {
var $datepicker = $( html ).datepicker();
var dateString = '2015-05-29T04:00:00.000Z';
var newDate = new Date(dateString);
var datepickerDate;

$datepicker.datepicker( "setDate", dateString);
datepickerDate = $datepicker.datepicker( "getDate" );

assert.equal( datepickerDate.getTime(), newDate.getTime(), "setDate method works" );
} );

QUnit.test( "should enable/disable datepicker", function( assert ) {
var $datepicker = $( html ).datepicker();
var $datepickerInput = $datepicker.find( "input" );
Expand Down
14 changes: 13 additions & 1 deletion test/datepicker-test.js
Expand Up @@ -75,7 +75,7 @@ define(function( require ) {
assert.equal( date1, date2, "getValue alias matches getDate" );
} );

QUnit.test( "should set new date using setDate method", function( assert ) {
QUnit.test( "should set new date using setDate method passing a Date object", function( assert ) {
var $datepicker = $( html ).datepicker();
var newDate = new Date( 1987, 2, 31 );
var datepickerDate;
Expand All @@ -86,6 +86,18 @@ define(function( require ) {
assert.equal( datepickerDate.getTime(), newDate.getTime(), "setDate method works" );
} );

QUnit.test( "should set new date using setDate method passing a ISO string", function( assert ) {
var $datepicker = $( html ).datepicker();
var dateString = '2015-05-29T04:00:00.000Z';
var newDate = new Date(dateString);
var datepickerDate;

$datepicker.datepicker( "setDate", dateString);
datepickerDate = $datepicker.datepicker( "getDate" );

assert.equal( datepickerDate.getTime(), newDate.getTime(), "setDate method works" );
} );

QUnit.test( "should enable/disable datepicker", function( assert ) {
var $datepicker = $( html ).datepicker();
var $datepickerInput = $datepicker.find( "input" );
Expand Down