diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -479,7 +479,7 @@ 'rsrc/js/core/behavior-device.js' => 'b5b36110', 'rsrc/js/core/behavior-drag-and-drop-textarea.js' => '4f6a4b4e', 'rsrc/js/core/behavior-error-log.js' => '6882e80a', - 'rsrc/js/core/behavior-fancy-datepicker.js' => '8ae55229', + 'rsrc/js/core/behavior-fancy-datepicker.js' => '568931f3', 'rsrc/js/core/behavior-file-tree.js' => '88236f00', 'rsrc/js/core/behavior-form.js' => '5c54cbf3', 'rsrc/js/core/behavior-gesture.js' => '3ab51e2c', @@ -622,7 +622,7 @@ 'javelin-behavior-editengine-reorder-fields' => 'b59e1e96', 'javelin-behavior-error-log' => '6882e80a', 'javelin-behavior-event-all-day' => '38dcf3c8', - 'javelin-behavior-fancy-datepicker' => '8ae55229', + 'javelin-behavior-fancy-datepicker' => '568931f3', 'javelin-behavior-global-drag-and-drop' => 'c8e57404', 'javelin-behavior-herald-rule-editor' => '7ebaeed3', 'javelin-behavior-high-security-warning' => 'a464fe03', @@ -1301,6 +1301,13 @@ 'phabricator-drag-and-drop-file-upload', 'javelin-workboard-board', ), + '568931f3' => array( + 'javelin-behavior', + 'javelin-util', + 'javelin-dom', + 'javelin-stratcom', + 'javelin-vector', + ), '56a1ca03' => array( 'javelin-behavior', 'javelin-behavior-device', @@ -1554,13 +1561,6 @@ 'javelin-install', 'javelin-dom', ), - '8ae55229' => array( - 'javelin-behavior', - 'javelin-util', - 'javelin-dom', - 'javelin-stratcom', - 'javelin-vector', - ), '8bdb2835' => array( 'phui-fontkit-css', ), diff --git a/webroot/rsrc/js/core/behavior-fancy-datepicker.js b/webroot/rsrc/js/core/behavior-fancy-datepicker.js --- a/webroot/rsrc/js/core/behavior-fancy-datepicker.js +++ b/webroot/rsrc/js/core/behavior-fancy-datepicker.js @@ -264,6 +264,7 @@ function getValidDate() { var written_date = new Date(value_y, value_m-1, value_d); + if (isNaN(written_date.getTime())) { return new Date(); } else { @@ -272,6 +273,14 @@ value_y += 2000; written_date = new Date(value_y, value_m-1, value_d); } + + // adjust for a date like February 31 + var adjust = 1; + while (written_date.getMonth() !== value_m-1) { + written_date = new Date(value_y, value_m-1, value_d-adjust); + adjust++; + } + return written_date; } }