如何更改html输入中提供的datetime-local的模式

时间:2015-07-18 05:05:40

标签: javascript jquery html css datetime

日期时间类型的Html输入是

Datefield:
<input type="datetime-local" data-date="" data-date-format="DD MMMM YYYY, h:mm:ss">

脚本包含以下代码。

$("input").val(moment().format('YYYY-MM-DD, h:mm:ss'));

$("input").on("change", function() {
this.setAttribute(
    "data-date",
    moment(this.value)
    .format( this.getAttribute("data-date-format") )
)
}).trigger("change")

我已提到http://jsfiddle.net/g7mvaosL/ 其中可以改变日期模式。 以类似的方式,我尝试使用type =&#34; datetime-local&#34;那它不起作用。 如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

日期选择器返回年,月和日 a

你要求它以及额外的小时,分​​钟,秒: date 选择器无法做到的事情。

我猜你想用h:mm:ss的当前时间?在你的代码中,你现在就把它设置为现在 console.log(this.value); //returns 2015-08-09

但这只发生一次,所以你需要在on change事件中移动这一行。

然而,没有桥梁可以让你一起添加两个时刻,因为它没有意义。今天+明天添加会使当前年份,月份等增加一倍。相反,您必须使用moment.duration()。如果将时刻定义为单个时间点,则将持续时间定义为时间长度。我写了一个函数,通过定位我们需要的值来帮助解决这个问题。

$("input").val(moment().format('YYYY-MM-DD, h:mm:ss'));

现在你可以使用moment.add()。

function nowAsDuration(){
    return moment.duration({
        hours:   moment().hour(),
        minutes: moment().minute(),
        seconds: moment().second()
    });
}

更新了代码。 http://jsfiddle.net/w7mj7feh/