Make two functions to convert ISO 8601 <=> YYYY-MM-DD hh:mm:ss
This commit is contained in:
parent
b1465c0282
commit
204339fbed
|
@ -1,9 +1,7 @@
|
|||
const dayjs = require("dayjs");
|
||||
const { BeanModel } = require("redbean-node/dist/bean-model");
|
||||
const { parseTimeObject, parseTimeFromTimeObject } = require("../../src/util");
|
||||
const { parseTimeObject, parseTimeFromTimeObject, isoToUTCDateTime, utcToISODateTime } = require("../../src/util");
|
||||
const { isArray } = require("chart.js/helpers");
|
||||
const { timeObjectToUTC, timeObjectToLocal } = require("../util-server");
|
||||
const { R } = require("redbean-node");
|
||||
|
||||
class Maintenance extends BeanModel {
|
||||
|
||||
|
@ -15,20 +13,11 @@ class Maintenance extends BeanModel {
|
|||
*/
|
||||
async toPublicJSON(timezone = null) {
|
||||
|
||||
let dateTimeRange = [];
|
||||
if (this.start_datetime) {
|
||||
|
||||
dateTimeRange.push(dayjs.utc(this.start_datetime).toISOString());
|
||||
if (this.end_datetime) {
|
||||
dateTimeRange.push(dayjs.utc(this.end_datetime).toISOString());
|
||||
}
|
||||
}
|
||||
|
||||
let dateRange = [];
|
||||
if (this.start_date) {
|
||||
dateRange.push(dayjs.utc(this.start_date).toISOString());
|
||||
dateRange.push(utcToISODateTime(this.start_date));
|
||||
if (this.end_date) {
|
||||
dateRange.push(dayjs.utc(this.end_date).toISOString());
|
||||
dateRange.push(utcToISODateTime(this.end_date));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,7 +44,6 @@ class Maintenance extends BeanModel {
|
|||
strategy: this.strategy,
|
||||
intervalDay: this.interval_day,
|
||||
active: !!this.active,
|
||||
dateTimeRange: dateTimeRange,
|
||||
dateRange: dateRange,
|
||||
timeRange: timeRange,
|
||||
weekdays: (this.weekdays) ? JSON.parse(this.weekdays) : [],
|
||||
|
@ -104,18 +92,10 @@ class Maintenance extends BeanModel {
|
|||
bean.active = obj.active;
|
||||
|
||||
if (obj.dateRange[0]) {
|
||||
bean.start_date = R.isoDate(dayjs(obj.dateRange[0]).utc());
|
||||
bean.start_date = isoToUTCDateTime(obj.dateRange[0]);
|
||||
|
||||
if (obj.dateRange[1]) {
|
||||
bean.end_date = R.isoDate(dayjs(obj.dateRange[1]).utc());
|
||||
}
|
||||
}
|
||||
|
||||
if (obj.dateTimeRange[0]) {
|
||||
bean.start_datetime = R.isoDateTime(dayjs(obj.dateTimeRange[0]).utc());
|
||||
|
||||
if (obj.dateTimeRange[1]) {
|
||||
bean.end_datetime = R.isoDateTime(dayjs(obj.dateTimeRange[1]).utc());
|
||||
bean.end_date = isoToUTCDateTime(obj.dateRange[1]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ class MaintenanceTimeslot extends BeanModel {
|
|||
} else if (maintenance.strategy === "single") {
|
||||
let bean = R.dispense("maintenance_timeslot");
|
||||
bean.maintenance_id = maintenance.id;
|
||||
bean.start_date = maintenance.start_datetime;
|
||||
bean.end_date = maintenance.end_datetime;
|
||||
bean.start_date = maintenance.start_date;
|
||||
bean.end_date = maintenance.end_date;
|
||||
bean.generated_next = true;
|
||||
await R.store(bean);
|
||||
} else {
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
<div class="my-3">
|
||||
<label class="form-label">{{ $t("DateTime Range") }}</label>
|
||||
<Datepicker
|
||||
v-model="maintenance.dateTimeRange"
|
||||
v-model="maintenance.dateRange"
|
||||
:dark="$root.isDark"
|
||||
range textInput
|
||||
:monthChangeOnScroll="false"
|
||||
|
@ -369,8 +369,7 @@ export default {
|
|||
strategy: "single",
|
||||
active: 1,
|
||||
intervalDay: 1,
|
||||
dateTimeRange: [ this.minDate ],
|
||||
dateRange: [],
|
||||
dateRange: [ this.minDate ],
|
||||
timeRange: [{
|
||||
hours: 2,
|
||||
minutes: 0,
|
||||
|
|
16
src/util.js
16
src/util.js
|
@ -7,9 +7,8 @@
|
|||
// Backend uses the compiled file util.js
|
||||
// Frontend uses util.ts
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.debug = exports.ucfirst = exports.sleep = exports.flipStatus = exports.STATUS_PAGE_MAINTENANCE = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.MAINTENANCE = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isDev = void 0;
|
||||
const _dayjs = require("dayjs");
|
||||
const dayjs = _dayjs;
|
||||
exports.utcToISODateTime = exports.isoToUTCDateTime = exports.parseTimeFromTimeObject = exports.parseTimeObject = exports.getMaintenanceRelativeURL = exports.getMonitorRelativeURL = exports.genSecret = exports.getCryptoRandomInt = exports.getRandomInt = exports.getRandomArbitrary = exports.TimeLogger = exports.polyfill = exports.log = exports.debug = exports.ucfirst = exports.sleep = exports.flipStatus = exports.STATUS_PAGE_MAINTENANCE = exports.STATUS_PAGE_PARTIAL_DOWN = exports.STATUS_PAGE_ALL_UP = exports.STATUS_PAGE_ALL_DOWN = exports.MAINTENANCE = exports.PENDING = exports.UP = exports.DOWN = exports.appName = exports.isDev = void 0;
|
||||
const dayjs = require("dayjs");
|
||||
exports.isDev = process.env.NODE_ENV === "development";
|
||||
exports.appName = "Uptime Kuma";
|
||||
exports.DOWN = 0;
|
||||
|
@ -351,3 +350,14 @@ function parseTimeFromTimeObject(obj) {
|
|||
return result;
|
||||
}
|
||||
exports.parseTimeFromTimeObject = parseTimeFromTimeObject;
|
||||
function isoToUTCDateTime(input) {
|
||||
return dayjs(input).utc().format("YYYY-MM-DD HH:mm:ss");
|
||||
}
|
||||
exports.isoToUTCDateTime = isoToUTCDateTime;
|
||||
/**
|
||||
* @param input
|
||||
*/
|
||||
function utcToISODateTime(input) {
|
||||
return dayjs.utc(input).toISOString();
|
||||
}
|
||||
exports.utcToISODateTime = utcToISODateTime;
|
||||
|
|
17
src/util.ts
17
src/util.ts
|
@ -6,8 +6,10 @@
|
|||
// Backend uses the compiled file util.js
|
||||
// Frontend uses util.ts
|
||||
|
||||
import * as _dayjs from "dayjs";
|
||||
const dayjs = _dayjs;
|
||||
import * as dayjs from "dayjs";
|
||||
import * as timezone from "dayjs/plugin/timezone";
|
||||
import * as utc from "dayjs/plugin/utc";
|
||||
import {R} from "redbean-node";
|
||||
|
||||
export const isDev = process.env.NODE_ENV === "development";
|
||||
export const appName = "Uptime Kuma";
|
||||
|
@ -392,3 +394,14 @@ export function parseTimeFromTimeObject(obj : any) {
|
|||
return result;
|
||||
}
|
||||
|
||||
|
||||
export function isoToUTCDateTime(input : string) {
|
||||
return dayjs(input).utc().format("YYYY-MM-DD HH:mm:ss");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param input
|
||||
*/
|
||||
export function utcToISODateTime(input : string) {
|
||||
return dayjs.utc(input).toISOString();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue