【问题标题】:Setting value of 'date-time local' input box using JQuery, normal datetime selection form drop down is not working?使用 JQuery 设置“本地日期时间”输入框的值,正常的日期时间选择表单下拉不起作用?
【发布时间】:2020-07-06 07:31:58
【问题描述】:

这是我在 HTML 中显示带有下拉列表的 DateTime 选择器的代码,

<input id="FromDate" name="FromDate" style="width:90%" type="datetime-local"  >

我使用下面的 JQuery 代码将日期设置为上个月,

var dt = new Date();
var Fromdatetime = dt.getFullYear() + "-" + ("0" + (dt.getMonth())).slice(-2) + "-" + ("0" + dt.getDate()).slice(-2) + "T" + ("0" + dt.getHours()).slice(-2) + ":" + ("0" + dt.getMinutes()).slice(-2) + ":" + ("0" + dt.getSeconds()).slice(-2) ; 
$("#FromDate").val(Fromdatetime)

执行脚本后,DateTime 被正确设置为一个月前的值。 但在那之后,我无法像以前一样使用 HTML 元素修改日期时间。

谁能为此提出解决方案?

提前致谢

【问题讨论】:

  • 很高兴听到这个消息。谢谢

标签: javascript html jquery datetime


【解决方案1】:

月份是从011 计算的,所以如果你想获得当前月份,你需要在 JS 中的 getMonth() 函数中添加+1 - 这就是它的工作原理。

此外,您的日期未更新的原因是您需要在输入中设置attr 而不是 val()。

工作演示:https://jsfiddle.net/usmanmunir/23h4L0fu/

在下面运行 sn-p 以查看它的工作情况。

var dt = new Date();

//Adding +1 to months
var Fromdatetime = dt.getFullYear() + "-" + ("0" + (dt.getMonth() + 1)).slice(-2) + "-" + ("0" + dt.getDate()).slice(-2) + "T" + ("0" + dt.getHours()).slice(-2) + ":" + ("0" + dt.getMinutes()).slice(-2) + ":" + ("0" + dt.getSeconds()).slice(-2);

//Using attr 
$('#FromDate').attr('value', Fromdatetime);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="FromDate" name="FromDate" style="width:90%" type="datetime-local">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多