javascript - 用时刻在不同时区抓取日期的一部分
问题描述
这可能是一个奇怪的问题,但我有一个时刻日期,稍后我需要抓取其中的一部分以用于不同的用途。例如,我抓住这一天并显示date.date()
从moment
.
所有这些都是发现和花花公子,但问题是时区与此相关。所以我有我的时刻对象,它是从字符串创建的:
const properDate = moment.tz(date, 'YYYY-MM-DD hh:mm:ss.SSS', 'America/New_York')
据我了解,为了获得正确的时区时间,我会这样做
properDate.format()
但这会将其转换为字符串。我希望能够获取正确时区的时间和日期。所以基本上,当我这样做时,properDate.hours()
我会在 UTC 时间得到它,但我想要它在America/New_York
.
比如说我想输入的日期字符串是2018-12-31 02:00:00.000 +00:00
当我通过上面的代码运行它时,然后properDate.hours()
我会得到2
,但我想在纽约时区得到它,21
如果我想得到日期,它也将是前一天。
我想解决这个问题的一种方法是将其转换为日期对象,使用new Date
并手动设置每个对象,也许?像这样的东西:
const dateWithTimezoneObject = new Date(properDate.year(), properDate.month(), properDate.date(), properDate.hours(), properDate.minutes())
但这听起来有点乱,我想知道是否有更好的方法来完成这项工作,可能是通过时刻。
那么,有没有办法让我在正确的时区时间获得时刻对象的部分?
解决方案
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
Test
<script src="moment.js"></script>
<script src="moment-timezone-with-data.js"></script>
<script>
const date = '2018-12-31 02:00:00.000 +00:00'
const new_york = moment(date,'YYYY-MM-DD HH:mm:ss.SSS Z')
.tz('America/New_York')
document.body.textContent =
`day: ${new_york.dates()} hour: ${new_york.hours()}`
</script>
</body>
</html>
推荐阅读
- python-3.x - 如何在 python 3 版本上修复此 EOF 错误
- javascript - 如何显示星期几/时间/营业时间状态?
- php - TinyMCE 使用 Laravel 6 上传图像的问题
- graphql - 使用signalR进行订阅的天蓝色函数中的Graphql-net服务器
- java - 在java中自动调整返回类型
- javascript - 带有等待/承诺的 Meteor.call 似乎不同步
- tensorflow - Bazel 在 Windows 10 上使用 Cuda 构建错误,如何解决?
- pyspark - 根据 pyspark 中的现有列值创建新列
- python - 如何在 django 模板中显示外键?
- python - Pandas 时间戳对象使用 strftime() 给出错误