javascript 如何获取特定时区中一天的开始日期

icomxhvb  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(145)

我正在使用日期选择器组件,并尝试将日期选择器中的选定日期设置为特定时区(例如欧洲/伦敦)中的一天开始(午夜)。因此,例如,如果我选择2023-01-30,我希望获得类似

Mon Jan 30 2023 00:00:00 GMT (London UK)

当前输出显示我的本地时区为GMT-0500(东部标准时间)末尾,但我希望伦敦为GMT
我正在使用date-fns来启动

const d = '2023-01-30';
const [year, month, day] = d.split('-');
const y = startOfDay(new Date(year, month - 1, day));
console.log('🚀 ~ file: ScheduleSection.js:102 ~ convertDateToUtc ~ y', y);

Actual Output: Mon Jan 30 2023 00:00:00 GMT-0500 (Eastern Standard Time)

Expected Output: Mon Jan 30 2023 00:00:00 GMT (London UK)
qhhrdooz

qhhrdooz1#

因为你有date-fns和date-fns-tz的标签,你可以对这些库做任何你想做的事情。

var dateFns = require('date-fns');
var dateFnsTz = require('date-fns-tz');

let date = '2014-06-25T00:00:00';
let timeZone = 'America/Los_Angeles';

// Parse timestamp for America/Los_Angeles
let utcDate = dateFnsTz.zonedTimeToUtc(date, timeZone);

// UTC equivalent: "2014-06-25T07:00:00.000Z"
console.log(utcDate.toISOString());

// Europe/London equivalent: "2014-06-25 08:00:00 GMT+1"
console.log(dateFnsTz.formatInTimeZone(utcDate,
            'Europe/London', 'yyyy-MM-dd HH:mm:ss zzz'));

由于RunKit不支持 import,因此使用了 require

uubf1zoe

uubf1zoe2#

您可以使用moment-timezone库,您可以通过运行以下命令安装它
npm安装时刻-时区
位于项目的根目录中。
示例:

const moment = require('moment-timezone');
const d = '2023-01-30';
const date = moment.tz(d, 'Europe/London').startOf('day').format();
console.log(date);

相关问题