jQuery Datepickerテキストボックスに今日の日付を事前に入力するにはどうすればよいですか?


238

私は非常にシンプルなjQuery Datepickerカレンダーを持っています。

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

そしてもちろんHTMLで...

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

今日の日付はユーザーがカレンダーを表示するときにうまく強調表示されますが、ユーザーが何もせずにjQueryでテキストボックス自体にページの読み込み時に今日の日付を事前入力するにはどうすればよいですか?99%の確率で、今日の日付のデフォルトが彼らの望むものになります。


7
最も一般的な答えは、受け入れられた答えよりも優れています。受け入れられた回答を変更することをお勧めします。
ahmadali shafiee


1
@ahmadalishafiee(および他のすべての人)。現在受け入れられているソリューションは、2015-05-07に受け入れられました。
Teepeemm 2018年

回答:


569

更新:これがChromeで機能しないという報告があります。

これは簡潔であり、仕事をします(時代遅れ):

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

これはそれほど簡潔ではありません。チェーンを利用すると、Chromeで機能するようになります(2019-06-04):

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

3
このソリューションはエレガントです
非表示

2
これは私にとって実際に機能したものであり、受け入れられた解決策ではありません。ありがとう
Mehdiway 2013

7
これは機能しません。最初に$( "。date-pick")。datepicker();を呼び出す必要があります。次に$( "。date-pick")。datepicker( 'setDate'、new Date());
ミシャアコポフ2015年

9
最近のブラウザ更新後、Chromeで動作しなくなりました
Max Flex

3
動作します。私は$(".date-pick").datepicker().datepicker('setDate', new Date()); thoを設定している
seebiscuit 2017年

221

最初にdatepicker()を呼び出し、次に「setDate」を使用して現在の日付を取得する必要があります。

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

または、この回答のコメントに記載されているように、日付ピッカーの初期化後にsetDateメソッド呼び出しをチェーンします

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

それだけでは動作しません

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

許容されるsetDateパラメータはここに記載されています


3
jQueryUI 1.8を使用して、私はこのソリューションがこれを達成する唯一の(正気な)方法であることがわかりました。
brianz

13
$( "。selector")。datepicker()。datepicker( "setDate"、new Date()); 動作し、jQueryがDOMを2回検索することはありません。
abc123 2013

1
素晴らしい、受け入れられた答えは$( "。date-pick")。datepicker( "setDate"、new Date());だけを言います。また、最初に$( "。date-pick")。datepicker();を呼び出さないと機能しません。あなたの答えははるかに優れています
ミシャアコポフ2015年

72
var myDate = new Date();
var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' +
        myDate.getFullYear();
$("#date_pretty").val(prettyDate);

機能しているように見えましたが、もっと良い方法があるかもしれません。


これは次の2つの点を除いてかなりうまく機能します。1)現在の日付を取得するためにjQueryメソッドを使用したいと思っていましたが、それは問題ではないかもしれません。2)このソリューションは、今日の日付のちょうど1か月前の値を生成します!
Marcus、

2
OH-そうです!それをチェックアウト- w3schools.com/jsref/jsref_obj_date.asp -月は0-11である-あなたは1を追加する必要があります。..不思議、のgetDateは1-31ですが、getMonthは... 0-11である
ルーカス

3
より簡単な方法があります..以下の私の投稿を参照してください。
Ravi Ram

このソリューションでは、テキストを直接表示して日付を同時に設定しますが、CiscoIPPhoneのソリューションでは、ピッカーを開かずに値を表示するための別の手順が必要です。
Afshar Mohebbi

4
たとえばsetDate、日付ピッカーの通常の相対表記を使用して、たとえば次のように入力することもできます.datepicker('setDate', '+1d')
kosii

59

このsetDate()メソッドは日付を設定し、関連するコントロールを更新します。方法は次のとおりです。

$("#datepicker1").datepicker({
    dateFormat: "yy-mm-dd"
}).datepicker("setDate", "0");

デモ

ドキュメントで述べたようにsetDate()、JavaScriptのDateオブジェクト、数値、または文字列を受け入れます。

新しい日付は、Dateオブジェクトまたは現在の日付形式の文字列(例:'01 / 26/2009 ')、今日からの日数(例:+7)、または値と期間の文字列(' y 'for年、月は「m」、週は「w」、日は「d」、たとえば「+ 1m + 7d」)、またはnullを選択して日付をクリアします。

ご参考までdefaultDateに、コンストラクタでプロパティを設定しても、関連付けられているコントロール更新されません


1
デモで機能するのはなぜですか。このコードを自分のサイトにコピーすると、ページが読み込まれるときにダイアログがポップアップし続けます。
chobo2 2012

1
これは私にとってはうまくいきました-受け入れられた答えと上記の他のオプションはうまくいきませんでした。
リディア2015

これは、上記のどれよりもはるかに優れたソリューションです。
adamj 2017

日付ピッカーと一致するように日付形式を「mm-dd-yy」にする必要がありましたが、現時点ではこの質問に対する最良の回答です。
John81

26

今日に設定:

$('#date_pretty').datepicker('setDate', '+0');

昨日に設定:

$('#date_pretty').datepicker('setDate', '-1');

など今日の日付の前後何日でも同様です

jQuery UI›メソッド› setDateを参照してください。


1
他の人が言及したように、あなたは一度まだ日付ピッカー()と呼ばれている必要があります偉大な、$(".date-pick").datepicker("setDate", '+0');
jwbensley

私のdateFormatはMySQLの日付形式(yy-mm-dd)と一致する必要があるため、これも希望どおりに機能しました。このsetDateは、月と日にゼロパディングを追加します。
jjohn

9

解決策は次のとおりです。

$(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);
});

グレイゴースト、ありがとう!


7

これは私のために働いた。

$('#inputName')
  .datepicker()
  .datepicker('setDate', new Date());

6

このコードは、日付ピッカーのフォーマットを使用することを保証します:

$('#date-selector').datepicker('setDate', new Date());

フォーマットを再適用する必要はありません。日付ピッカーの初期化時にユーザーが事前定義した日付ピッカーを使用します(割り当てた場合!);)


5

David K Eggheadのコードは完全に機能しました。ありがとうございます。

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

私もそれを少しトリミングしてうまくいきました:

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

4
$('input[name*="date"]').datepicker({
        dateFormat: 'dd-mm-yy',
        changeMonth: true,
        changeYear: true,
        beforeShow: function(input, instance) { 
            $(input).datepicker('setDate', new Date());
        }
    });

2

ロード時に日付ピッカーを特定のデフォルト時間(私の場合は現在の日付)に設定し、構文が別の日付を選択できるようにするには、次のようにします。

    $(function() { 
        // initialize the datapicker
        $("#date").datepicker();

        // set the time
        var currentDate = new Date();
        $("#date").datepicker("setDate",currentDate);

    //  set the options for the button  
        $("#date").datepicker("option",{
            dateFormat: 'dd/mm',
            showOn: "button",
          // whatever option Or event you want 
        });
  });

この解決策は私にとってクロームで機能しましたが、ここにリストされた他のソリューションは機能しませんでした
Mike Volmar

2

日付を事前入力するには、最初に日付ピッカーを初期化してから、setDateパラメータ値を渡す必要があります。

$("#date_pretty").datepicker().datepicker("setDate", new Date());

1

ちょうど2セント追加すると思いました。ピッカーは追加/更新フォームで使用されているため、既存のレコードを編集する場合はデータベースからの日付を表示し、そうでない場合は今日の日付を表示する必要がありました。以下は私にとってはうまくいきます:

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

1

2つのオプションがあります。

オプションA) 入力をクリックした場合にのみ、カレンダーで「アクティブ」としてマークします。

Js

$('input.datepicker').datepicker(
                        {   
                            changeMonth: false,
                            changeYear: false,
                            beforeShow: function(input, instance) { 
                                $(input).datepicker('setDate', new Date());
                            }
                        }                         
                     );

CSS

div.ui-datepicker table.ui-datepicker-calendar .ui-state-active,
        div.ui-datepicker table.ui-datepicker-calendar .ui-widget-content .ui-state-active  {
            background: #1ABC9C;
            border-radius: 50%;
            color: #fff;
            cursor: pointer;
            display: inline-block;
            width: 24px; height: 24px;
        }​

オプションB)今日のデフォルトで入力します。最初にdatepickerを入力する必要があります。

$( "input.datepicker")。datepicker()。datepicker( "setDate"、new Date());

1
オプションの日付がどの現在の日付にデフォルト値をポイントで選択されるまで、日付ピッカーが空白のままにすることができますので、Aは良いです
waxingsatirical

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

prettyDateを必要なコントロールに割り当てます。


0

これを試して

$(this).datepicker("destroy").datepicker({
            changeMonth: false, changeYear: false,defaultDate:new Date(), dateFormat: "dd-mm-yy",  showOn: "focus", yearRange: "-5:+10"
        }).focus();

0

これ.datepicker('setDate', new Date());は、datepickerが既にパラメーターで構成されている場合、混乱するため呼び出しに問題が発生することがあるので、私にとってはうまくいきます。

$("#myDateText").val(moment(new Date()).format('DD/MM/YYYY'));

0

これを使って:

$(".datepicker").datepicker({ dateFormat: 'dd-M-yy' }).datepicker('setDate', new Date());

形式で日付を取得するには(例:2019年10月10日)これは、ユーザーにとってよりわかりやすくなります。


-1
$(function()
{
$('.date-pick').datePicker().val(new Date().asString()).trigger('change');
});

ソース:http : //www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerDefaultToday.html


ブラウザがasString()関数を認識しませんでした。私は次のようにしました:$( "。date-pick")。datepicker( 'setDate'、new Date());
CiscoIPPhone 2010

1
asString()はtoString()である必要があると思います。
rg88 '17年

1
Kevin LuckのDatePickerとJquery UI DatePickerは、2つの非常に異なる日付ピッカーです。
Craig Hooghiem

@gamerzfuse jQuery UIの日付ピッカーは、Kevin Luckの日付ピッカーに基づいています。
Mathias Bynens、2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.