|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- const { padNumber, parseDate, formatDate } = require('../core/util');
-
- module.exports = {
-
- formatDate: function(date, format, utc) {
- date = parseDate(date);
- if (date == null) return date;
-
- return formatDate(date, format, utc);
- },
-
- dateAdd: function(date, interval, num) {
- date = parseDate(date);
- if (date == null) return date;
-
- switch (interval) {
- case 'years': date.setFullYear(date.getFullYear() + num); break;
- case 'months': date.setMonth(date.getMonth() + num); break;
- case 'weeks': date.setDate(date.getDate() + (num * 7)); break;
- case 'days': date.setDate(date.getDate() + num); break;
- case 'hours': date.setHours(date.getHours() + num); break;
- case 'minutes': date.setMinutes(date.getMinutes() + num); break;
- case 'seconds': date.setSeconds(date.getSeconds() + num); break;
- }
-
- return date.toISOString();
- },
-
- dateDiff: function(date, interval, date2) {
- date = parseDate(date);
- date2 = parseDate(date2);
-
- let diff = Math.abs(date2 - date);
-
- if (isNaN(diff) || date == null || date2 == null) return undefined;
-
- let s = 1000, m = s * 60, h = m * 60, d = h * 24, w = d * 7;
-
- switch (interval) {
- case 'years': return Math.abs(date2.getFullYear() - date.getFullYear());
- case 'months': return Math.abs((date2.getFullYear() * 12 + date2.getMonth()) - (date.getFullYear() * 12 + date.getMonth()));
- case 'weeks': return Math.floor(diff / w);
- case 'days': return Math.floor(diff / d);
- case 'hours': return Math.floor(diff/ h);
- case 'minutes': return Math.floor(diff / m);
- case 'seconds': return Math.floor(diff / s);
- case 'hours:minutes':
- h = Math.floor(diff / h);
- m = Math.floor(diff / m);
- return padNumber(h, 2) + ':' + padNumber(m - (h * 60), 2);
- case 'minutes:seconds':
- m = Math.floor(diff / m);
- s = Math.floor(diff / s);
- return padNumber(m, 2) + ':' + padNumber(s - (m * 60), 2);
- case 'hours:minutes:seconds':
- h = Math.floor(diff / h);
- m = Math.floor(diff / m);
- s = Math.floor(diff / s);
- return padNumber(h, 2) + ':' + padNumber(m - (h * 60), 2) + ':' + padNumber(s - m * 60, 2);
- }
-
- return undefined;
- },
-
- toTimestamp: function(date) {
- date = parseDate(date);
- if (date == null) return date;
- return Math.floor(date.getTime() / 1000);
- },
-
- toLocalTime: function(date) {
- date = parseDate(date);
- if (date == null) return date;
- return formatDate(date, 'yyyy-MM-dd HH:mm:ss.v');
- },
-
- toUTCTime: function(date) {
- date = parseDate(date);
- if (date == null) return date;
- return date.toISOString();
- },
-
- };
|