单击按钮时在文本框中插入日期和时间

时间:2017-02-26 16:02:57

标签: javascript

我正在创建通常会在文本框中输入日期和时间的内容。如何设置仅在文本框中显示MM / DD / YYYY ##:##:##的日期和时间。我希望它很简单,可以运行到任何版本的IE。

这是我的代码:

<form>
    <input name="StartDate" size="50"> 
    <input onclick="this.form.StartDate.value = new Date();" type="button" value="Start date"> 
    <input name="StopDate" size="50"> 
    <input onclick="this.form.StopDate.value = new Date();" type="button" value="Stop date">
</form>

1 个答案:

答案 0 :(得分:0)

您可以在日期对象上使用getMonth,getYear方法等 - 这应该在旧版IE中支持。

var myDate = new Date();
this.form.StopDate.value = (myDate.getMonth() + 1) + "/" + myDate.getDate() + "/" + myDate.getFullYear()+ ' ' + myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds();

请参阅Docs

将此定义为函数可能是有意义的:

function getDateString(){
    var myDate = new Date();
    return (myDate.getMonth() + 1) + 
        "/" + myDate.getDate() + 
        "/" + myDate.getFullYear() + 
        ' ' + myDate.getHours() + 
        ":" + myDate.getMinutes() + 
        ":" + myDate.getSeconds();
}

然后在按钮中使用: <input onclick="this.form.StartDate.value = getDateString();" type="button" value="Start date">

您可能还需要处理将前导0添加到您的日期,此代码段负责处理此问题:

function getDateString(){
    var myDate = new Date();
    return padDatePart(myDate.getMonth() + 1) + 
        "/" + padDatePart(myDate.getDate()) + 
        "/" + myDate.getFullYear()+ 
        ' ' + padDatePart(myDate.getHours()) + 
        ":" + padDatePart(myDate.getMinutes()) + 
        ":" + padDatePart(myDate.getSeconds());
}

function padDatePart(part){
    return ('0'+part).slice(-2); 
}
<form>
    <input name="StartDate" size="50"> 
    <input onclick="this.form.StartDate.value = getDateString();" type="button" value="Start date"> 
    <input name="StopDate" size="50"> 
    <input onclick="this.form.StopDate.value =getDateString();" type="button" value="Stop date">
</form>