Wie erhält man den Beginn ( 00:00:00 ) und das Ende ( 23:59:59 ) des heutigen Tages als Zeitstempel ( GMT )? Der Computer verwendet eine lokale Zeit.
Antworten
Zu viele Anzeigen?
José Antonio Postigo
Punkte
2100
Weihang Jian
Punkte
6493
Es ist vielleicht ein bisschen schwierig, aber Sie können Folgendes verwenden Intl.DateTimeFormat
.
Das folgende Snippet kann Ihnen helfen, ein beliebiges Datum mit einer beliebigen Zeitzone in seine Anfangs-/Endzeit zu konvertieren.
const beginingOfDay = (options = {}) => {
const { date = new Date(), timeZone } = options;
const parts = Intl.DateTimeFormat("en-US", {
timeZone,
hourCycle: "h23",
hour: "numeric",
minute: "numeric",
second: "numeric",
}).formatToParts(date);
const hour = parseInt(parts.find((i) => i.type === "hour").value);
const minute = parseInt(parts.find((i) => i.type === "minute").value);
const second = parseInt(parts.find((i) => i.type === "second").value);
return new Date(
1000 *
Math.floor(
(date - hour * 3600000 - minute * 60000 - second * 1000) / 1000
)
);
};
const endOfDay = (...args) =>
new Date(beginingOfDay(...args).getTime() + 86399999);
const beginingOfYear = () => {};
console.log(beginingOfDay({ timeZone: "GMT" }));
console.log(endOfDay({ timeZone: "GMT" }));
console.log(beginingOfDay({ timeZone: "Asia/Tokyo" }));
console.log(endOfDay({ timeZone: "Asia/Tokyo" }));
Giang
Punkte
1886
// get current time for UTC timezone
const d = new Date();
const year = d.getUTCFullYear();
const month = d.getUTCMonth();
const day = d.getUTCDate();
// set time to begin day UTC
const startTime = Date.UTC(year, month, day, 0, 0, 0, 0);
//set time to end day UTC
const endTime = Date.UTC(year, month, day, 23, 59, 0, 0);
- See previous answers
- Weitere Antworten anzeigen