为什么Moment.JS不能正确parsing24小时的date
每当我使用moment.js&nodeparsingdate,它应该是12小时。 考虑以下testing:
var moment = require('moment'); var dt1 = moment('14:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate(); console.log('dt1:' + JSON.stringify(dt1, null, 4)); var dt2 = moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate(); console.log('dt2:' + JSON.stringify(dt2, null, 4));
它给出了输出:
dt1:"2014-06-10T02:00:00.000Z" dt2:"2014-06-09T14:00:00.000Z"
它几乎就像它parsing它使用一些疯狂的时区,而不是只是在我的本地时区parsingdate,我会认为这将是默认的行为。
我怎样才能使它正常工作?
Moment.js工作正常。 你的问题的来源是JSON.stringify转换date为UTC。 所以你需要添加你的时区到时间戳来解决这个问题。 最简单的方法是将你的第一时刻对象转换为第二个对象,以便更改格式,并使用不带参数的格式调用来设置默认格式(在此处查找默认格式)。
moment(moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').toDate()).format();
更新:
@MattJohnson认为这更简单。 不知道为什么它没有为我工作,但它只是需要是:
moment('02:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').format()
尝试如下
var dt1 = moment('14:00, 10 Jun 2014', 'HH:mm, DD MMM YYYY').format('HH:mm, DD MMM YYYY');
- Node.js:正则expression式获取“From:”和“To:”
- 带有Sequelize的Node.js上的SQL Server 2008
- NODE和CMS与angularjs:他们如何合作
- 我怎样才能得到在cucumber.js的AfterStep钩子的步骤结果
- 我可以/我怎么能将一个Selenium webdrivertesting脚本从node.js转换为phantomjs – ghostdriver?
- 在NodeJS中testing对象相等
- 使用defineProperty重命名JS key将无法在Node.js中工作
- 在铁路快速子域处理程序告诉我子域参数(在路线)是控制器为什么?
- 如何通过NodeJS中的POST http.request传递响应参数