输入类型datetime-local设置了错误的时区
HTML Input type datetime-local setting the wrong time-zone
我创建了一个应用程序,它接受HTML输入并通过JavaScript在本地日历事件上创建一个事件。它从<input type="datetime-local">
取时间,它输入了不同的时间因为它选择了不同的时区。如果我输入下午1点作为时间,它将返回上午8点。
<input type="datetime-local" id="startDate" name="startDate">
和JavaScript:
var startDate = new Date($("#startDate").val());
任何帮助都会很棒。我可以张贴更多的代码,如果需要的话。
HTML5 datetime-local
输入类型将返回一个字符串值,其中包含ISO8601格式的日期和时间,具有分钟精度,并且没有任何时区偏移。
例如:2014-07-12T01:00
当涉及到从字符串解析日期时,JavaScript
date对象是出了名的不一致。在大多数实现中,当您提供这样的字符串时,它会错误地假设该值是UTC格式。因此,您返回的Date
对象将根据您本地计算机的时区偏移量进行调整。
选项1
将字符串操作为可能被Date
对象的解析器解释为本地时间的格式。具体来说,将破折号(-
)替换为正斜杠(/
),并将T
替换为空格。
var s = $("#startDate").val();
var startDate = new Date(s.replace(/-/g,'/').replace('T',' '));
选项2
使用具有更强大的日期解析能力的库。有几种可用的。其中最流行的是moment.js.
Moment.js有很多选项,但它的默认行为恰好是你所需要的。因此,您可以直接将字符串传递给moment构造函数,而不需要任何参数。var s = $("#startDate").val();
var startDate = moment(s).toDate();
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 时刻.js时区值返回错误的时间戳
- Javascript 解析 json 日期时区不匹配会导致显示错误的日期
- JS Date() 返回正确的时区,但返回错误的日期
- 时区偏移导致错误的日期
- JavaScript Date.UTC 在不同的时区给出错误的日期
- Django返回错误的时区
- 输入类型datetime-local设置了错误的时区
- 使用WallTime.js进行js时区转换,但得到一个错误
- Sharepoint操作列表-由于时区原因,可能错误转换了截止日期
- EEST时区上的Javascript Date函数错误