将日期输入类型默认值设置为今天,明天,Anydate?

kir*_*ulo 7 jquery html5 date input

在HTML5中,没有一种在value属性中指定"today"的本机方式.这是我非常喜欢的jQuery代码.如何扩展此代码以进行设置

  • 今天的日期 var today
  • 明天的日期 var tomorrow
  • 任何计算日期var anydate(计算/从var today?开始)

并相应地定义以下3个id-s:

  • #theDate
  • #theTomorrow
  • #theAnydate

HTML

<input type="date" id="theDate">
Run Code Online (Sandbox Code Playgroud)

jQuery的

$(document).ready(function() {
    var date = new Date();

    var day = date.getDate();
    var month = date.getMonth() + 1;
    var year = date.getFullYear();

    if (month < 10) month = "0" + month;
    if (day < 10) day = "0" + day;

    var today = year + "-" + month + "-" + day;       
    $("#theDate").attr("value", today);
});
Run Code Online (Sandbox Code Playgroud)

演示

Nic*_*zel 11

与任何HTML输入字段一样,除非使用value属性指定默认值,否则浏览器将为空.

不幸的是,HTML5没有提供在value属性中指定'today'的方法(我可以看到),只有RFC3339的 有效日期2011-09-29.

来源:Tak的答案是"HTML5输入类型日期 - 今天的默认值?"

在这种情况下,你可以写一个脚本来简单+1地找到明天的日期,但你首先必须input id今天的日期添加一个默认值.

至于任何日期?不完全确定你的意思.就像一个日期选择器?

问题有点不清楚,但我想我会尽可能多地提供所提供的信息.


要通过jQuery分配日期,你总是可以做这样的事......

http://jsfiddle.net/SinisterSystems/4XkVE/4/

HTML:

<input type="date" id="theDate">
Run Code Online (Sandbox Code Playgroud)

jQuery的:

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!

var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = mm+'/'+dd+'/'+yyyy;

$('#theDate').attr('value', today);

alert($('#theDate').attr('value'));
Run Code Online (Sandbox Code Playgroud)

编辑:

此外,要查找今天的日期和明天的日期,但确保月末或年末不会影响它,请改用:

http://jsfiddle.net/SinisterSystems/4XkVE/6/

HTML:

<input type="date" id="theDate">
<input type="date" id="tomorrowDate">
Run Code Online (Sandbox Code Playgroud)

jQuery的

var today = new Date();
var tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
var tomday = tomorrow.getDate();
var tommonth = tomorrow.getMonth() + 1;
var tomyear = tomorrow.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = mm+'/'+dd+'/'+yyyy;
if(tomday<10){tomday='0'+tomday} if(tommonth<10){tommonth='0'+tommonth} tomorrow = tommonth+'/'+tomday+'/'+tomyear;
$('#theDate').attr('value', today);
$('#tomorrowDate').attr('value', tomorrow);
Run Code Online (Sandbox Code Playgroud)


wlo*_*her 5

基于Nicholas Hazel的响应和有关日期的前导零的user113716答案,这是一个简洁的函数,用于将日期格式化为YYYY-MM-DD并设置“日期”类型输入控件的值。

http://jsfiddle.net/wloescher/2t8v7fnf/2/

的HTML

<div>Today:
    <input type="date" id="theDate" />
</div>
<div>Tomorrow:
    <input type="date" id="theTomorrow" />
</div>
<div>Any Date:
    <input type="date" id="theAnyDate" />
</div>
Run Code Online (Sandbox Code Playgroud)

的JavaScript

// Set values
$("#theDate").val(getFormattedDate(today()));
$("#theTomorrow").val(getFormattedDate(tomorrow()));
$("#theAnyDate").val(getFormattedDate(new Date("4/1/12")));

function today() {
    return new Date();
}

function tomorrow() {
    return today().getTime() + 24 * 60 * 60 * 1000;
}

// Get formatted date YYYY-MM-DD
function getFormattedDate(date) {
    return date.getFullYear()
        + "-"
        + ("0" + (date.getMonth() + 1)).slice(-2)
        + "-"
        + ("0" + date.getDate()).slice(-2);
}
Run Code Online (Sandbox Code Playgroud)