Initial commit

This commit is contained in:
2025-09-20 22:59:18 +02:00
commit 6ba8860de9
9 changed files with 1110 additions and 0 deletions

77
date.js Normal file
View File

@@ -0,0 +1,77 @@
class Timestamp {
DEFAULT_FORMAT = "Y-m-d H:i:s P";
#date;
constructor(init, options = {}) {
if (init === 'now') {
this.#date = new Date();
} else if (init && init.match(/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}) (.+?)$/)) {
let { year, month, day, hour, minute, second, timezone } = init.replace('-',' ').split();
let h = null, m = null;
if (timezone.indexOf(':') !== false) {
let { h, m } = timezone.split(':');
} else {
h = timezone;
}
this.#date = new Date(year, month, day, hour, minute, second, 0);
h = parseInt(h);
m = parseInt(m);
let t = this.#date.getTime();
let d = ((h * 3600) + (m * 60) * 1000);
this.#date.setTime(t -d );
}
}
get date() {
return this.#date;
}
get time() {
return this.format('H:i:s');
}
set time(time) {
}
add(periods) {
// return new
}
sub(periods) {
// return new
}
time(time) {
// return new
}
diff(other) {
// return diff
}
format(format) {
// format date
}
toString() {
return this.format(this.DEFAULT_FORMAT);
}
}
function date(when = "now") {
return new Timestamp(when);
}
export {
Timestamp,
date
};