var schedule = {
start_at = Date ( '2017-10-10' ), // Not editable - this data is being handed off by an ORM
...
};
// Mon Oct 09 2017 20:00:00 GMT-0400 (Eastern Daylight Time)
console.log ( schedule.start_at );
是否可以更改 ISO 日期的时间以匹配当前时区的 00:00:00,因此在本例中输出将为 Tue Oct 10 2017 00:00:00 GMT- 0400(东部夏令时间)
?
我尝试过使用 moment.utc ()
,但这只能帮助将日期格式化为字符串。输出需要是一个 Date 对象,并通过一些进一步的逻辑来传递。
我花了几个小时查找 Moment.js 文档,但没有找到任何可以用来解决这个问题的东西。
(注意:我将其添加到使用 Node.js 进行 API/服务器开发的缺点列表中。ISO 日期管理在我的经验中一直是一场噩梦。)
编辑:
所以我错了。事实证明,schedule.start_at
是一个设置为Mon Oct 09 2017 20:00:00 GMT-0400(东部夏令时间)
的 Date 对象。 [问题已更改以反射(reflect)]。我的问题仍然存在,如何更改日期对象以更改时区,同时保持指定的时间?
最佳答案
这是您要找的吗:
时刻 (schedule.start_at + '00-0400').toDate();
var schedule = {
start_at : '2017-10-10'
};
var date = moment ( schedule.start_at ).toDate();
console.log(date.toString());
var date2 = moment ( schedule.start_at + ' 00-0400' ).toDate();
console.log(date2.toString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
关于javascript - 更改 JS 日期的时区而不更改指定的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627685/