summaryrefslogtreecommitdiff
path: root/node_modules/moment/src/lib/create/date-from-array.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/moment/src/lib/create/date-from-array.js')
-rw-r--r--node_modules/moment/src/lib/create/date-from-array.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/moment/src/lib/create/date-from-array.js b/node_modules/moment/src/lib/create/date-from-array.js
new file mode 100644
index 0000000..3d3498d
--- /dev/null
+++ b/node_modules/moment/src/lib/create/date-from-array.js
@@ -0,0 +1,35 @@
+export function createDate(y, m, d, h, M, s, ms) {
+ // can't just apply() to create a date:
+ // https://stackoverflow.com/q/181348
+ var date;
+ // the date constructor remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ // preserve leap years using a full 400 year cycle, then reset
+ date = new Date(y + 400, m, d, h, M, s, ms);
+ if (isFinite(date.getFullYear())) {
+ date.setFullYear(y);
+ }
+ } else {
+ date = new Date(y, m, d, h, M, s, ms);
+ }
+
+ return date;
+}
+
+export function createUTCDate(y) {
+ var date, args;
+ // the Date.UTC function remaps years 0-99 to 1900-1999
+ if (y < 100 && y >= 0) {
+ args = Array.prototype.slice.call(arguments);
+ // preserve leap years using a full 400 year cycle, then reset
+ args[0] = y + 400;
+ date = new Date(Date.UTC.apply(null, args));
+ if (isFinite(date.getUTCFullYear())) {
+ date.setUTCFullYear(y);
+ }
+ } else {
+ date = new Date(Date.UTC.apply(null, arguments));
+ }
+
+ return date;
+}