You've already forked openaccounting-web
mirror of
https://github.com/openaccounting/oa-web.git
synced 2025-12-09 09:01:24 +13:00
wip
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
//import * as moment from 'moment-timezone/builds/moment-timezone-with-data-2012-2022.min';
|
||||
import * as moment from 'moment-timezone';
|
||||
|
||||
const defaultTz = moment.tz.guess();
|
||||
|
||||
export class Util {
|
||||
static getLocalDateString(input: Date) {
|
||||
let year = input.getFullYear().toString();
|
||||
let month = (input.getMonth() + 1).toString();
|
||||
let date = input.getDate().toString();
|
||||
static getLocalDateString(input: Date, tz: string = defaultTz) {
|
||||
let m = moment(input).tz(tz);
|
||||
|
||||
let year = m.format('YYYY');
|
||||
let month = m.format('MM');
|
||||
let date = m.format('DD');
|
||||
|
||||
if(month.length < 2) {
|
||||
month = '0' + month;
|
||||
@@ -15,14 +22,112 @@ export class Util {
|
||||
return year + '-' + month + '-' + date;
|
||||
}
|
||||
|
||||
static getDateFromLocalDateString(input: string) {
|
||||
let parts = input.split('-');
|
||||
let date = new Date();
|
||||
date.setHours(0, 0, 0, 0);
|
||||
date.setFullYear(parseInt(parts[0]));
|
||||
date.setMonth(parseInt(parts[1]) - 1, parseInt(parts[2]));
|
||||
static getLocalDateStringExcl(input: Date, tz: string = defaultTz) {
|
||||
let m = moment(input.getTime() - 1).tz(tz);
|
||||
|
||||
return date;
|
||||
let year = m.format('YYYY');
|
||||
let month = m.format('MM');
|
||||
let date = m.format('DD');
|
||||
|
||||
if(month.length < 2) {
|
||||
month = '0' + month;
|
||||
}
|
||||
|
||||
if(date.length < 2) {
|
||||
date = '0' + date;
|
||||
}
|
||||
|
||||
return year + '-' + month + '-' + date;
|
||||
}
|
||||
|
||||
static getDateFromLocalDateString(input: string, tz: string = defaultTz) {
|
||||
let parts = input.split('-');
|
||||
|
||||
let m = moment().tz(tz);
|
||||
m.hours(0);
|
||||
m.minutes(0);
|
||||
m.seconds(0);
|
||||
m.milliseconds(0);
|
||||
m.year(parseInt(parts[0]));
|
||||
m.month(parseInt(parts[1]) - 1);
|
||||
m.date(parseInt(parts[2]));
|
||||
|
||||
return m.toDate();
|
||||
}
|
||||
|
||||
static getDateFromLocalDateStringExcl(input: string, tz: string = defaultTz) {
|
||||
let parts = input.split('-');
|
||||
|
||||
let m = moment().tz(tz);
|
||||
m.hours(0);
|
||||
m.minutes(0);
|
||||
m.seconds(0);
|
||||
m.milliseconds(0);
|
||||
m.year(parseInt(parts[0]));
|
||||
m.month(parseInt(parts[1]) - 1);
|
||||
m.date(parseInt(parts[2]) + 1);
|
||||
|
||||
return m.toDate();
|
||||
}
|
||||
|
||||
static setFirstOfMonth(input: Date, tz: string = defaultTz) {
|
||||
let m = moment(input).tz(tz);
|
||||
|
||||
m.date(1);
|
||||
input.setTime(m.valueOf());
|
||||
}
|
||||
|
||||
static setBeginOfDay(input: Date, tz: string = defaultTz) {
|
||||
let m = moment(input).tz(tz);
|
||||
|
||||
m.hours(0);
|
||||
m.minutes(0);
|
||||
m.seconds(0);
|
||||
m.milliseconds(0);
|
||||
input.setTime(m.valueOf());
|
||||
}
|
||||
|
||||
static setEndOfDay(input: Date, tz: string = defaultTz) {
|
||||
let m = moment(input).tz(tz);
|
||||
|
||||
m.hours(23);
|
||||
m.minutes(59);
|
||||
m.seconds(59);
|
||||
m.milliseconds(999);
|
||||
input.setTime(m.valueOf());
|
||||
}
|
||||
|
||||
static getOneMonthLater(input: Date, tz: string = defaultTz): Date {
|
||||
let m = moment(input).tz(tz);
|
||||
|
||||
m.month(m.month() + 1);
|
||||
|
||||
return m.toDate();
|
||||
}
|
||||
|
||||
static computeTransactionDate(formDate: Date, txDate: Date, tz: string = defaultTz): Date {
|
||||
if(!formDate || !formDate.getTime()) {
|
||||
return txDate;
|
||||
}
|
||||
|
||||
let formMoment = moment(formDate).tz(tz);
|
||||
let txMoment = moment(txDate).tz(tz);
|
||||
|
||||
// make the time be at the very end of the day
|
||||
formMoment.hours(23);
|
||||
formMoment.minutes(59);
|
||||
formMoment.seconds(59);
|
||||
formMoment.milliseconds(999);
|
||||
|
||||
let sameDay = formMoment.year() === txMoment.year() &&
|
||||
formMoment.month() === txMoment.month() &&
|
||||
formMoment.date() === txMoment.date();
|
||||
|
||||
if(!sameDay) {
|
||||
return formMoment.toDate();
|
||||
}
|
||||
|
||||
return txDate;
|
||||
}
|
||||
|
||||
static newGuid() {
|
||||
|
||||
Reference in New Issue
Block a user