正确创建时刻时区对象
creating moment-timezone object properly
我试图创建一个具有自定义小时和分钟的时刻时区对象,但我一直收到无效的日期错误。
var momentz = require('moment-timezone');
var now = momentz().tz('Europe/Istanbul');
var year = parseInt(now.format('YYYY'));
var month = parseInt(now.format('M'));
var day = parseInt(now.format('D'));
var hour = 8;
var minute = 30;
var newdate = momentz([year,month,day,hour,minute,0]);
验证返回错误
console.log(newdate.isValid());
我在这里错过了什么?非常感谢。
没有单独的"时刻时区对象"。时刻时区增加了时刻对象。因此,您应该只调用变量moment
,而不是momenttz
。这是来自文档:
var moment = require('moment-timezone');
然后按照你的要求去做:
var m = moment.tz('Europe/Istanbul'); // get the time in Turkey
m.startOf('day').hour(8).minute(30); // set the hour and minute
请注意startOf('day')
的使用,它比将秒和毫秒分别设置为零更容易。
你也可以把它写成一行:
var m = moment.tz('Europe/Istanbul).startOf('day').hour(8).minute(30);
关于您在问题中编写的代码,format
函数不应用于获取单个部件。这些函数有单独的函数,.year()
、.month()
、.date()
等。特别是,请注意,由于format
函数是特定于区域设置的,因此您将看到编号为1-12的月份,而对于month
函数或您构建的数组,作为整数,它们应为0-11。此外,当您构建newdate
时,您没有保留任何时区信息,因此结果在本地时区中。
相关文章:
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 如何在发布JavaScript日期对象时保留时区偏移量
- AngularJS,如何将多个输入组合到一个ng模型中?具体来说,将日期、时间和时区输入组合到日期时间对象中
- 如何将 unix 时间戳转换为 JavaScript 日期对象(考虑时区)
- 如何将UTC时间字符串转换为本地时区中正确的moment.js对象
- 如何创建一个考虑时区Node.JS/javascript的JS日期对象
- Javascript 日期对象时区问题 - 不同的时区
- 更改 JavaScript 日期对象中的时区缩写
- 如何从时刻对象获取时区偏移量
- 正确创建时刻时区对象
- 从moment.js对象中删除时区
- 从JavaScriptDate对象中提取日期字符串,而不应用时区
- 如何从javascript日期对象中获取时区字符串
- 碳,Javascript日期对象和时区
- 将本地时区日期对象转换为UTC时区日期对象的优雅方式
- 如何在Moment.js中添加IST时区对象
- javascript Date对象转换本地时区
- JavaScript日期对象总是在美国/纽约时区打印
- 如何获得时间从日期对象没有时区在javascript
- 来自Windows机器的date对象——时区问题