date-format-parse
Advanced tools
Comparing version 0.2.6 to 0.2.7
@@ -0,1 +1,10 @@ | ||
## [0.2.7](https://github.com/mengxiong10/date-format-parse/compare/v0.2.6...v0.2.7) (2021-08-08) | ||
### Bug Fixes | ||
* round the timezone offset ([27dc7da](https://github.com/mengxiong10/date-format-parse/commit/27dc7dab170cdb83ac2a313bd0c6b5d9ce0a0f9b)) | ||
## [0.2.6](https://github.com/mengxiong10/date-format-parse/compare/v0.2.5...v0.2.6) (2020-11-17) | ||
@@ -2,0 +11,0 @@ |
import { Locale } from './locale'; | ||
declare function format(val: Date, str: string, options?: { | ||
export declare function format(val: Date, str: string, options?: { | ||
locale?: Locale; | ||
}): string; | ||
export default format; |
@@ -17,2 +17,6 @@ import { toDate, isValidDate, getWeek } from './util'; | ||
function getOffset(date) { | ||
return Math.round(date.getTimezoneOffset() / 15) * 15; | ||
} | ||
function formatTimezone(offset) { | ||
@@ -150,7 +154,7 @@ var delimeter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; | ||
Z: function Z(date) { | ||
return formatTimezone(date.getTimezoneOffset(), ':'); | ||
return formatTimezone(getOffset(date), ':'); | ||
}, | ||
// Timezone: -0100, +0000, ... +1200 | ||
ZZ: function ZZ(date) { | ||
return formatTimezone(date.getTimezoneOffset()); | ||
return formatTimezone(getOffset(date)); | ||
}, | ||
@@ -175,4 +179,3 @@ // Seconds timestamp: 512969520 | ||
}; | ||
function format(val, str) { | ||
export function format(val, str) { | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
@@ -198,4 +201,2 @@ var formatStr = str ? String(str) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'; | ||
}); | ||
} | ||
export default format; | ||
} |
@@ -1,3 +0,3 @@ | ||
export { default as format } from './format'; | ||
export { default as parse } from './parse'; | ||
export { format } from './format'; | ||
export { parse } from './parse'; | ||
export { isDate, toDate, isValidDate, getWeek } from './util'; |
@@ -1,3 +0,3 @@ | ||
export { default as format } from './format'; | ||
export { default as parse } from './parse'; | ||
export { format } from './format'; | ||
export { parse } from './parse'; | ||
export { isDate, toDate, isValidDate, getWeek } from './util'; |
@@ -23,5 +23,5 @@ import { Unionize } from 'utility-types'; | ||
} | ||
export default function parse(str: string, format: string, options?: { | ||
export declare function parse(str: string, format: string, options?: { | ||
locale?: Locale; | ||
backupDate?: Date; | ||
}): Date; |
@@ -222,2 +222,18 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function createDate(y, m, d, h, M, s, ms) { | ||
var date; | ||
if (y < 100 && y >= 0) { | ||
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; | ||
} | ||
function createUTCDate() { | ||
@@ -281,3 +297,3 @@ var date; | ||
export default function parse(str, format) { | ||
export function parse(str, format) { | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
@@ -321,6 +337,13 @@ | ||
var utcDate = createUTCDate.apply(void 0, _toConsumableArray(getFullInputArray(inputArray, backupDate))); | ||
var offsetMilliseconds = (offset === undefined ? utcDate.getTimezoneOffset() : offset) * 60 * 1000; | ||
var parsedDate = new Date(utcDate.getTime() + offsetMilliseconds); // check weekday | ||
var parsedDate; | ||
var result = getFullInputArray(inputArray, backupDate); | ||
if (offset !== undefined) { | ||
result[6] += offset * 60 * 1000; | ||
parsedDate = createUTCDate.apply(void 0, _toConsumableArray(result)); | ||
} else { | ||
parsedDate = createDate.apply(void 0, _toConsumableArray(result)); | ||
} // check weekday | ||
if (weekday !== undefined && parsedDate.getDay() !== weekday) { | ||
@@ -327,0 +350,0 @@ return new Date(NaN); |
import { Locale } from './locale'; | ||
declare function format(val: Date, str: string, options?: { | ||
export declare function format(val: Date, str: string, options?: { | ||
locale?: Locale; | ||
}): string; | ||
export default format; |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports["default"] = void 0; | ||
exports.format = format; | ||
@@ -29,2 +29,6 @@ var _util = require("./util"); | ||
function getOffset(date) { | ||
return Math.round(date.getTimezoneOffset() / 15) * 15; | ||
} | ||
function formatTimezone(offset) { | ||
@@ -162,7 +166,7 @@ var delimeter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; | ||
Z: function Z(date) { | ||
return formatTimezone(date.getTimezoneOffset(), ':'); | ||
return formatTimezone(getOffset(date), ':'); | ||
}, | ||
// Timezone: -0100, +0000, ... +1200 | ||
ZZ: function ZZ(date) { | ||
return formatTimezone(date.getTimezoneOffset()); | ||
return formatTimezone(getOffset(date)); | ||
}, | ||
@@ -209,6 +213,2 @@ // Seconds timestamp: 512969520 | ||
}); | ||
} | ||
var _default = format; | ||
exports["default"] = _default; | ||
module.exports = exports.default; | ||
} |
@@ -1,3 +0,3 @@ | ||
export { default as format } from './format'; | ||
export { default as parse } from './parse'; | ||
export { format } from './format'; | ||
export { parse } from './parse'; | ||
export { isDate, toDate, isValidDate, getWeek } from './util'; |
@@ -9,3 +9,3 @@ "use strict"; | ||
get: function get() { | ||
return _format["default"]; | ||
return _format.format; | ||
} | ||
@@ -16,3 +16,3 @@ }); | ||
get: function get() { | ||
return _parse["default"]; | ||
return _parse.parse; | ||
} | ||
@@ -45,8 +45,6 @@ }); | ||
var _format = _interopRequireDefault(require("./format")); | ||
var _format = require("./format"); | ||
var _parse = _interopRequireDefault(require("./parse")); | ||
var _parse = require("./parse"); | ||
var _util = require("./util"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } | ||
var _util = require("./util"); |
@@ -23,5 +23,5 @@ import { Unionize } from 'utility-types'; | ||
} | ||
export default function parse(str: string, format: string, options?: { | ||
export declare function parse(str: string, format: string, options?: { | ||
locale?: Locale; | ||
backupDate?: Date; | ||
}): Date; |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports["default"] = parse; | ||
exports.parse = parse; | ||
@@ -234,2 +234,18 @@ var _en = _interopRequireDefault(require("./locale/en")); | ||
function createDate(y, m, d, h, M, s, ms) { | ||
var date; | ||
if (y < 100 && y >= 0) { | ||
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; | ||
} | ||
function createUTCDate() { | ||
@@ -332,6 +348,13 @@ var date; | ||
var utcDate = createUTCDate.apply(void 0, _toConsumableArray(getFullInputArray(inputArray, backupDate))); | ||
var offsetMilliseconds = (offset === undefined ? utcDate.getTimezoneOffset() : offset) * 60 * 1000; | ||
var parsedDate = new Date(utcDate.getTime() + offsetMilliseconds); // check weekday | ||
var parsedDate; | ||
var result = getFullInputArray(inputArray, backupDate); | ||
if (offset !== undefined) { | ||
result[6] += offset * 60 * 1000; | ||
parsedDate = createUTCDate.apply(void 0, _toConsumableArray(result)); | ||
} else { | ||
parsedDate = createDate.apply(void 0, _toConsumableArray(result)); | ||
} // check weekday | ||
if (weekday !== undefined && parsedDate.getDay() !== weekday) { | ||
@@ -345,4 +368,2 @@ return new Date(NaN); | ||
} | ||
} | ||
module.exports = exports.default; | ||
} |
{ | ||
"name": "date-format-parse", | ||
"version": "0.2.6", | ||
"version": "0.2.7", | ||
"description": "Lightweight date format and parse", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -16,2 +16,6 @@ import { toDate, isValidDate, getWeek } from './util'; | ||
function getOffset(date: Date) { | ||
return Math.round(date.getTimezoneOffset() / 15) * 15; | ||
} | ||
function formatTimezone(offset: number, delimeter = '') { | ||
@@ -174,3 +178,3 @@ const sign = offset > 0 ? '-' : '+'; | ||
Z(date) { | ||
return formatTimezone(date.getTimezoneOffset(), ':'); | ||
return formatTimezone(getOffset(date), ':'); | ||
}, | ||
@@ -180,3 +184,3 @@ | ||
ZZ(date) { | ||
return formatTimezone(date.getTimezoneOffset()); | ||
return formatTimezone(getOffset(date)); | ||
}, | ||
@@ -206,3 +210,3 @@ | ||
function format(val: Date, str: string, options: { locale?: Locale } = {}) { | ||
export function format(val: Date, str: string, options: { locale?: Locale } = {}) { | ||
const formatStr = str ? String(str) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'; | ||
@@ -226,3 +230,1 @@ const date = toDate(val); | ||
} | ||
export default format; |
@@ -1,3 +0,3 @@ | ||
export { default as format } from './format'; | ||
export { default as parse } from './parse'; | ||
export { format } from './format'; | ||
export { parse } from './parse'; | ||
export { isDate, toDate, isValidDate, getWeek } from './util'; |
@@ -219,2 +219,16 @@ import { Unionize, PickByValue } from 'utility-types'; | ||
function createDate(y: number, m: number, d: number, h: number, M: number, s: number, ms: number) { | ||
let date; | ||
if (y < 100 && y >= 0) { | ||
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; | ||
} | ||
function createUTCDate(...args: DateArgs) { | ||
@@ -266,3 +280,3 @@ let date: Date; | ||
export default function parse( | ||
export function parse( | ||
str: string, | ||
@@ -304,6 +318,12 @@ format: string, | ||
const utcDate = createUTCDate(...getFullInputArray(inputArray, backupDate)); | ||
const offsetMilliseconds = | ||
(offset === undefined ? utcDate.getTimezoneOffset() : offset) * 60 * 1000; | ||
const parsedDate = new Date(utcDate.getTime() + offsetMilliseconds); | ||
let parsedDate: Date; | ||
const result = getFullInputArray(inputArray, backupDate); | ||
if (offset !== undefined) { | ||
result[6] += offset * 60 * 1000; | ||
parsedDate = createUTCDate(...result); | ||
} else { | ||
parsedDate = createDate(...result); | ||
} | ||
// check weekday | ||
@@ -310,0 +330,0 @@ if (weekday !== undefined && parsedDate.getDay() !== weekday) { |
212546
4309