我有一个非常简单的jQuery Datepicker日历:

$(document).ready(function(){
    $("#date_pretty").datepicker({ 
    });
});

当然在HTML中…

<input type="text" size="10" value="" id="date_pretty"/>

今天的日期是很好的突出显示为用户时,他们带来的日历,但我如何让jQuery预填充文本框本身与今天的日期在页面加载,而不需要用户做任何事情?99%的情况下,今天的日期默认是他们想要的。


当前回答

你必须首先调用datepicker() >,然后使用'setDate'来获取当前日期。

$(".date-pick").datepicker();
$(".date-pick").datepicker("setDate", new Date());

或者在初始化datepicker后将setDate方法调用链起来,如此答案的注释中所述

$('.date-pick').datepicker({ /* optional option parameters... */ })
               .datepicker("setDate", new Date());

这是行不通的

$(".date-pick").datepicker("setDate", new Date());

注意:这里描述了可接受的setDate参数

其他回答

我只是想说几句。选择器用于添加/更新表单,因此如果编辑现有记录,则需要显示来自数据库的日期,如果没有则显示今天的日期。下面是为我工作良好:

    $( "#datepicker" ).datepicker();
    <?php if (!empty($oneEVENT['start_ts'])): ?>
       $( "#datepicker" ).datepicker( "setDate", "<?php echo $startDATE; ?>" );
    <? else: ?>
       $("#datepicker").datepicker('setDate', new Date());   
    <?php endif; ?>
  });

解决方案是:

$(document).ready(function(){
    $("#date_pretty").datepicker({ 
    });
    var myDate = new Date();
    var month = myDate.getMonth() + 1;
    var prettyDate = month + '/' + myDate.getDate() + '/' + myDate.getFullYear();
    $("#date_pretty").val(prettyDate);
});

谢谢grayghost !

更新:有报道称,这将不再适用于Chrome浏览器。

这句话简明扼要,能起到作用(过时):

$(".date-pick").datepicker('setDate', new Date());

这是不那么简洁的,利用链接允许它在chrome中工作(2019-06-04):

$(".date-pick").datepicker().datepicker('setDate', new Date());
$(function()
{
$('.date-pick').datePicker().val(new Date().asString()).trigger('change');
});

来源:http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerDefaultToday.html

var prettyDate = $.datepicker.formatDate('dd-M-yy', new Date());
alert(prettyDate);

将prettyDate分配给必要的控件。