Javascript输入UTC字符串

Javascript输入UTC字符串,javascript,date,utc,Javascript,Date,Utc,我现在正在做一个项目,我想得到两个端点之间的日期数组。当我硬编码开始和结束日期时,我已经让代码工作得很好了 我的问题是,当我使用输入时,代码不起作用。如何将正常日期输入转换为UTC字符串 下面是一个关于我的例子: 点击我获取日期 函数getDate(){ var water=document.getElementById(“气泡”).value; 警报(水); //警报(water.toutString()); var火灾=新日期(2018年10月15日); 警报(火警); } 我希望获取

我现在正在做一个项目,我想得到两个端点之间的日期数组。当我硬编码开始和结束日期时,我已经让代码工作得很好了

我的问题是,当我使用输入时,代码不起作用。如何将正常日期输入转换为UTC字符串

下面是一个关于我的例子:


点击我获取日期
函数getDate(){
var water=document.getElementById(“气泡”).value;
警报(水);
//警报(water.toutString());
var火灾=新日期(2018年10月15日);
警报(火警);
}

我希望获取'water'变量的格式与'fire'变量的格式相同


我看到有.toutString(),但这不起作用

我强烈建议使用优秀的库进行日期维护,因为本机支持较差:

function getDate(){
   var water = document.getElementById("bubbles").value;
   var waterMoment = moment(water);
   alert(water.utc().format()); //outputs a UTC date string

   var fire = new Date (2018,10,15);
   alert(fire);
}

有关更多详细信息,请参阅和。

这可能是的副本,但这里有一个更合适的答案

日期输入的值是一个ISO 8601格式的日期字符串,格式为“YYYY-MM-DD”,这是您应该看到的:

alert(water); // something like 2018-06-21
Date.prototype.toString返回的字符串的格式取决于实现(尽管它将标准化)。这就是您从中获得的格式:

alert(fire) // e.g. Thu Jun 21 2018 00:00:00 GMT+1000 (AEST)
一种修复方法是将字符串从日期输入转换为日期,然后对两个输出使用默认的toString。但是您的问题是,ISO 8601日期字符串的解析是UTC,因此日期会因主机时区偏移而不同,例如

console.log(新日期('2018-06-21').toString());//2018年6月21日

console.log(新日期(2018年5月21日).toString());//2018年6月21日
我听说过MomentJs,但还没有投入使用。我链接到js中的哪一个重要吗,或者任何一个都会让我去吗?其中一些是特定于地区的,因此最适合于特定地区。您不需要这些功能,因此我坚持回答不应该依赖于OP中未提及或未标记的库。您的代码有错误,请尝试将其发布为可运行的代码段,moment.js可以使用CDN(例如)添加为外部库。请稍等。。。我们不能推荐图书馆??作为一名javascript专业人士,我觉得这很奇怪,而且违反直觉;请你给我指一下说明这一点的堆栈溢出指南。而且,告诉我我的代码中有错误,而不告诉我它们是什么。。。粗鲁的
alert(fire) // e.g. Thu Jun 21 2018 00:00:00 GMT+1000 (AEST)