Javascript JS中的new Date()存在问题
我有一个带有Javascript JS中的new Date()存在问题,javascript,html,date,dom,Javascript,Html,Date,Dom,我有一个带有的网页,用户在其中选择日期。我使用DOM API方法获取此日期,并创建一个日期对象: article.createdAt=新日期(form.elements['Date'].value) 因此,我的日期是正确的,但时间总是一样的,00:00。我希望我是用户选择日期的时间,或者至少他能够手动设置时间 我需要一些建议。谢谢您的帮助。尝试使用datetime local而不是date 演示 单击按钮创建本地日期时间字段 试试看 函数myFunction(){ var x=document
的网页,用户在其中选择日期。我使用DOM API方法获取此日期,并创建一个日期对象:
article.createdAt=新日期(form.elements['Date'].value)代码>
因此,我的日期是正确的,但时间总是一样的,00:00。我希望我是用户选择日期的时间,或者至少他能够手动设置时间
我需要一些建议。谢谢您的帮助。尝试使用datetime local
而不是date
演示
单击按钮创建本地日期时间字段
试试看
函数myFunction(){
var x=document.createElement(“输入”);
x、 setAttribute(“类型”、“日期时间本地”);
x、 setAttribute(“默认值”,“2015-01-02T11:42:13.510”);
x、 setAttribute(“值”,“2015-01-02T11:42:13.510”);
文件.正文.附件(x);
警报(x值);
警报(新日期(x值));
}
有4种开始日期的方式:
新日期()
新日期(毫秒)
新日期(日期字符串)
新日期(年、月、日、小时、分钟、秒、毫秒)
你可以跟随他们,也许你的问题会得到解决
以此代码的字符串形式查找结果form.elements['date']。value
然后,按照第三个数字进行操作。我认为您检索的日期输入不正确,请检查您的控制台,查看是否有任何错误,然后尝试这样获取您的日期
article.createdAt = new Date(form.querySelector("input[type='date']").value);
创建另一个没有参数的日期实例,并复制小时和分钟。@Nikita您能给我看看您的HTML&JS代码日期控件返回的实际值是多少吗?它应该类似于“2017-04-10”。我想你的意思是实例化而不是启动hanks,这很有效。也许你可以告诉我,如果不考虑我的时区,我应该怎么做才能安排新的约会?例如,我输入04:33 AM,新日期以07:33 AM的时间创建(我的时区是UTC+3)。您不必在此处使用.setAttribute()
。可以直接设置DOM元素的“类型”、“默认值”和“值”属性。@ NigKiSavaVoimic时区是因为“代码> T 在中间。在将输入传递给Date
constructor之前,可以删除该T
。只有代码的答案没有多大帮助。您应该解释代码修复OP问题的原因或方式。您依赖内置解析器正确解析“2015-01-02T11:42:13.510”,这不是一个好主意。@RobG基本上,答案是将type=“date”
替换为type=“datetime local”
,这样日期对象本身就带有时间值。我同意传递日期并不完全正确,但我假设OP将解析用户输入的日期,而不是设置自己的日期。如果控件在表单中,那么要成功,它必须有一个名称,因此form.controlName.value
更健壮,键入的次数更少。;-)此外,这并没有解决获取与日期关联的时间的问题。