salix-front/src/boot/vnDate.js

61 lines
1.6 KiB
JavaScript

import { boot } from 'quasar/wrappers';
import { date as quasarDate } from 'quasar';
const { formatDate } = quasarDate;
export default boot(() => {
Date.vnUTC = () => {
const env = process.env.NODE_ENV;
if (!env || env === 'development') return new Date(Date.UTC(2001, 0, 1, 11));
return new Date();
};
Date.vnNew = () => {
return new Date(Date.vnUTC());
};
Date.vnNow = () => {
return new Date(Date.vnUTC()).getTime();
};
Date.vnFirstDayOfMonth = () => {
const date = new Date(Date.vnUTC());
return new Date(date.getFullYear(), date.getMonth(), 1);
};
Date.vnLastDayOfMonth = () => {
const date = new Date(Date.vnUTC());
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
};
Date.getCurrentDateTimeFormatted = (
options = {
startOfDay: false,
endOfDay: true,
iso: true,
mask: 'DD-MM-YYYY HH:mm',
},
) => {
const date = Date.vnUTC();
if (options.startOfDay) {
date.setHours(0, 0, 0);
}
if (options.endOfDay) {
date.setHours(23, 59, 0);
}
if (options.iso) {
return date.toISOString();
}
return formatDate(date, options.mask);
};
Date.convertToISODateTime = (dateTimeStr) => {
const [datePart, timePart] = dateTimeStr.split(' ');
const [day, month, year] = datePart.split('-');
const [hours, minutes] = timePart.split(':');
const isoDate = new Date(year, month - 1, day, hours, minutes);
return isoDate.toISOString();
};
});