4 changed files with 60 additions and 20 deletions
@ -0,0 +1,53 @@ |
|||||
|
import dayjs from "dayjs"; |
||||
|
import utc from "dayjs/plugin/utc"; |
||||
|
import timezone from "dayjs/plugin/timezone"; |
||||
|
import relativeTime from "dayjs/plugin/relativeTime"; |
||||
|
dayjs.extend(utc); |
||||
|
dayjs.extend(timezone); |
||||
|
dayjs.extend(relativeTime); |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
userTimezone: localStorage.timezone || "auto", |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
datetime(value) { |
||||
|
return this.datetimeFormat(value, "YYYY-MM-DD HH:mm:ss"); |
||||
|
}, |
||||
|
|
||||
|
date(value) { |
||||
|
return this.datetimeFormat(value, "YYYY-MM-DD"); |
||||
|
}, |
||||
|
|
||||
|
time(value, second = true) { |
||||
|
let secondString; |
||||
|
if (second) { |
||||
|
secondString = ":ss"; |
||||
|
} else { |
||||
|
secondString = ""; |
||||
|
} |
||||
|
return this.datetimeFormat(value, "HH:mm" + secondString); |
||||
|
}, |
||||
|
|
||||
|
datetimeFormat(value, format) { |
||||
|
if (value !== undefined && value !== "") { |
||||
|
return dayjs.utc(value).tz(this.timezone).format(format); |
||||
|
} |
||||
|
return ""; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
timezone() { |
||||
|
if (this.userTimezone === "auto") { |
||||
|
return dayjs.tz.guess() |
||||
|
} |
||||
|
|
||||
|
return this.userTimezone |
||||
|
}, |
||||
|
} |
||||
|
|
||||
|
} |
Loading…
Reference in new issue