使用moment.js将日期选择器的日期转换为ISO格式

4

我的任务是使用日期选择器按指定格式(例如MM-DD-YYYY)选择日期,并将其作为ISO格式传递到服务器。

当我测试输出时,ISO格式的日期会比预期晚一天。

例如:

如果我选择

07-13-2015

我的输出ISO格式是:
ISO format is :2015-07-12T18:30:00.000Z

这里可以看到日期是13,但输出的日期是12

我来自印度。我尝试使用时区和utcOffset,但最终没有结果。我该如何设置正确的时间?

这是JSFIDDLE

JavaScript 代码

$('#datetimepicker1').on("dp.change",function(e){
        var selectedDate = $('#datetimepicker1').find("input").val();
        selectedDate = moment(selectedDate,"MM-DD-YYYY");
        $(".temp").text(moment(selectedDate).toISOString());
    });

我有一个隐藏的字段,它的值将在更改时更新,并将在服务器上处理。这方面没有问题。


你的问题解决了吗? - HardikT
3个回答

3
$('#datetimepicker1').on("dp.change",function(e){
        var selectedDate = $('#datetimepicker1').find("input").val();
        selectedDate = moment(selectedDate,"MM-DD-YYYY");
        $(".temp").text(selectedDate.toISOString());
    });

您选择的日期已经是 moment 对象,因此不需要将其再输入到另一个 moment 中。
例子:
var test = '07-13-2015'
var mtest = moment(test,"MM-DD-YYYY")
mtest.toISOString()
"2015-07-13T06:00:00.000Z"

你能看出你的代码和我的代码之间的区别吗?并且从日期选择器中获取的日期不是moment对象。它显示为无效日期。我已经创建了一个jsfiddle。我的问题是,如果选择13,则ISO字符串会显示12...请查看我的jsfiddle。 - Alaksandar Jesus Gene
在玩弄 JSFiddler 并重新阅读您的问题后,我认为您可能遇到了时区更改的问题。我认为您看到日期更改是因为印度与世界标准时间之间有足够的时间差异。我认为原因是我无法复制您的问题(本地或在JSFiddler中)。 - Jason H
我的关于selectDate已经是一个moment对象的评论是针对第三行的:这将selectedDate转换为一个moment对象 => selectedDate = moment(selectedDate,"MM-DD-YYYY"); 因此在你的第四行,你正在将一个moment对象放入一个新的moment对象中 => $(".temp").text(moment(selectedDate).toISOString()); - Jason H
明白了。我理解了时间差的要点。根据moment.js文档,使用UTC("5.30")来正确完成它并不适用于我。 - Alaksandar Jesus Gene
或者作为建议,我们应该让服务器专业人员负责转换,因为一切都是根据服务器时间记录的。 - Alaksandar Jesus Gene

0
你可以尝试将日期格式一次性转换为UTC。
selectedDate = moment(selectedDate).utc('MM-DD-YYYY')

0
根据http://dygraphs.com/date-formats.html,如果您传递像“07-13-2015”这样的字符串,则表示2015年7月13日午夜。现在,如果您使用toISOString函数,则默认会将其转换为UTC时间。要不将其转换为UTC,请在toISOString函数中传递一个true参数。(Moment.js文档)
例如:

var date = '07-13-2015';
date = moment(date,'MM-DD-YYY');
console.log(date.toISOString(true));

这样,moment就不会将日期转换为UTC。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接