577

我使用来自 jQuery UI 的 UI DatePicker 作为独立的选择器。我有这个代码:

<div id="datepicker"></div>

以及以下JS:

$('#datepicker').datepicker();

当我尝试使用此代码返回值时:

var date = $('#datepicker').datepicker('getDate');

我被退回了:

2009 年 8 月 25 日星期二 00:00:00 GMT+0100 (BST)

这是完全错误的格式。有没有办法让它以格式返回DD-MM-YYYY

4

29 回答 29

1012

这是您的代码的特定内容:

var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val();

此处提供更多一般信息:

于 2009-08-25T12:42:17.933 回答
106

在 jQuery 脚本代码中只需粘贴代码。

$( ".selector" ).datepicker({ dateFormat: 'yy-mm-dd' });

这应该有效。

于 2010-08-16T05:08:51.947 回答
65

getDatedatepicker的方法返回一个日期类型,而不是一个字符串。

您需要使用您的日期格式将返回值格式化为字符串。使用日期选择器的formatDate功能:

var dateTypeVar = $('#datepicker').datepicker('getDate');
$.datepicker.formatDate('dd-mm-yy', dateTypeVar);

格式说明符的完整列表可在此处获得

于 2011-11-25T02:40:53.417 回答
36

此处为日期格式 (yy/mm/dd) 的日期选择器的完整代码。

复制下面的链接并粘贴到 head 标签中:

   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>  
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>  
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 

   <script type="text/javascript">
       $(function() {
               $("#datepicker").datepicker({ dateFormat: "yy-mm-dd" }).val()
       });
   </script>

复制下面的代码并粘贴在body标签之间:

      Date: <input type="text" id="datepicker" size="30"/>    

如果您想要两(2)个输入类型的文本Start DateEnd Date然后使用此脚本并更改日期格式。

   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>  
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>  
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 

   <script type="text/javascript">
       $(function() {
               $("#startdate").datepicker({ dateFormat: "dd-mm-yy" }).val()
               $("#enddate").datepicker({ dateFormat: "dd-mm-yy" }).val()
       });

   </script>  

两个输入文本,如:

      Start Date: <input type="text" id="startdate" size="30"/>    
      End Date: <input type="text" id="enddate" size="30"/>
于 2012-01-28T06:29:38.380 回答
21

日期格式

解析和显示日期的格式。该属性是区域化属性之一。有关可能格式的完整列表,请参阅 formatDate 函数。

代码示例 使用指定的 dateFormat 选项初始化日期选择器。

$( ".selector" ).datepicker({ dateFormat: 'yy-mm-dd' });

在 init 之后获取或设置 dateFormat 选项。

//getter
var dateFormat = $( ".selector" ).datepicker( "option", "dateFormat" );
//setter
$( ".selector" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );
于 2010-06-21T17:52:18.130 回答
19

getDate函数返回一个 JavaScript 日期。使用以下代码格式化此日期:

var dateObject = $("#datepicker").datepicker("getDate");
var dateString = $.datepicker.formatDate("dd-mm-yy", dateObject);

它使用一个内置在 datepicker 中的实用函数:

$.datepicker.formatDate( format, date, settings )- 将日期格式化为具有指定格式的字符串值。

格式说明符的完整列表可在此处获得

于 2012-12-12T19:08:12.783 回答
10
<script type="text/javascript">
  $(function() {
    $( "#date" ).datepicker( {minDate: '0', dateFormat: 'yy-dd-mm' } );
  });
</script>
于 2015-01-01T12:35:26.570 回答
10

$("#datepicker").datepicker("getDate")返回一个日期对象,而不是一个字符串。

var dateObject = $("#datepicker").datepicker("getDate"); // get the date object
var dateString = dateObject.getFullYear() + '-' + (dateObject.getMonth() + 1) + '-' + dateObject.getDate();// Y-n-j in php date() format
于 2011-08-30T09:08:45.250 回答
9

尝试使用

$( ".selector" ).datepicker({ dateFormat: 'dd/mm/yy' });  

并且有很多可用的选项对于日期选择器,您可以在这里找到它

http://api.jqueryui.com/datepicker/

这是我们用参数调用日期选择器的方式

$(function() {
      $('.selector').datepicker({
            dateFormat: 'dd/mm/yy',
            changeMonth: true,
            numberOfMonths: 1,
            buttonImage: 'contact/calendar/calendar.gif',
            buttonImageOnly: true,
            onSelect: function(selectedDate) {
                 // we can write code here 
             }
      });
});
于 2016-03-07T12:53:36.290 回答
6
$("#datepicker").datepicker({ dateFormat: "yy-mm-dd" }).val()
于 2011-05-11T08:35:52.810 回答
6

如果您需要 yy-mm-dd 格式的日期,您可以使用:-

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

您可以找到所有支持的格式 https://jqueryui.com/datepicker/#date-formats

我需要 2015 年 12 月 6 日,我这样做了:-

$("#datepicker").datepicker({ dateFormat: "d M,y" });
于 2015-12-06T09:26:05.357 回答
6

你可以简单地在你的函数中使用这种格式,就像

     $(function() {  
        $( "#datepicker" ).datepicker({
            dateFormat: 'dd/mm/yy',
          changeMonth: true,
          changeYear: true
        });
      });

<input type="text" id="datepicker"></p>
于 2016-01-06T10:17:34.790 回答
4

只需运行这个 HTML 页面,就可以看到几种格式。

<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Datepicker - Format date</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
    $( "#datepicker" ).datepicker();
    $( "#format" ).change(function() {
        $( "#datepicker" ).datepicker( "option", "dateFormat", $( this ).val() );
    });
});
</script>
</head>
<body>

<p>Date: <input type="text" id="datepicker" size="30" /></p>

<p>Format options:<br />
<select id="format">
    <option value="mm/dd/yy">Default - mm/dd/yy</option>
    <option value="yy-mm-dd">ISO 8601 - yy-mm-dd</option>
    <option value="d M, y">Short - d M, y</option>
    <option value="d MM, y">Medium - d MM, y</option>
    <option value="DD, d MM, yy">Full - DD, d MM, yy</option>
    <option value="'day' d 'of' MM 'in the year' yy">With text - 'day' d 'of' MM 'in the year' yy</option>
</select>
</p>


</body>
</html>
于 2013-06-17T09:52:48.020 回答
4

这也有效:

$("#datepicker").datepicker({
    dateFormat:'d-m-yy'
});
于 2015-12-11T11:41:01.650 回答
3

我将 jquery 用于 datepicker。这些 jquery 用于此

<script src="jqueryCalendar/jquery-1.6.2.min.js"></script>
<script src="jqueryCalendar/jquery-ui-1.8.15.custom.min.js"></script>
<link rel="stylesheet" href="jqueryCalendar/jqueryCalendar.css">

然后你按照这个代码,

<script>
     jQuery(function() {
     jQuery( "#date" ).datepicker({ dateFormat: 'dd/mm/yy' });
                });
</script>
于 2014-10-22T12:09:26.667 回答
3
<script>
    $(function() {  
        $("#datepicker").datepicker(); 
        $('#datepicker').datepicker('option', {dateFormat: 'd MM y'});
    }); 
    $("#startDate").datepicker({dateFormat: 'd MM y'}); 
</script>
于 2012-11-19T04:05:03.140 回答
3

所以我为此苦苦挣扎,以为我快疯了,问题是引导日期选择器的实现不是 jQuery,所以选项不同;

$('.dateInput').datepicker({  format: 'dd/mm/yyyy'})
于 2020-03-22T11:46:07.373 回答
3

这工作顺利。尝试这个。

将这些链接粘贴到您的头部。

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script>
<link rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css"/>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

以下是JS编码。

 <script>

        $(document).ready(function () {
            $('#completionDate').datepicker({
                dateFormat: 'yy-mm-dd', // enter date format you prefer (e.g. 2018-10-09)
                changeMonth: true,
                changeYear: true,
                yearRange: "-50:+10",
                clickInput: true,

                onSelect: function (date) {
                    loadMusterChit();
                }

            });
        });

    </script>
于 2018-10-29T09:45:44.270 回答
2

如果您在元素上设置日期选择器,input[type="text"]您可能无法获得格式一致的日期,特别是当用户不遵循数据输入的日期格式时。

例如,当您将 dateFormat 设置为dd-mm-yy并且用户类型为1-1-1. datepicker 会将其转换为Jan 01, 2001内部但调用val()datepicker 对象将返回字符串"1-1-1"- 正是文本字段中的内容。

这意味着您应该验证用户输入以确保输入的日期是您期望的格式,或者不允许用户输入自由格式的日期(而不是日历选择器)。即便如此,可以强制 datepicker 代码为您提供一个格式如您所愿的字符串:

var picker = $('#datepicker');

picker.datepicker({ dateFormat: 'dd-mm-yy' });

picker.val( '1-1-1' );  // simulate user input

alert( picker.val() );  // "1-1-1"

var d = picker.datepicker( 'getDate' );
var f = picker.datepicker( 'option', 'dateFormat' );
var v = $.datepicker.formatDate( f, d );

alert( v );             // "01-01-2001"

但是请注意,虽然 datepicker 的getDate()方法将返回一个日期,但它只能在用户输入与日期格式不完全匹配的情况下做很多事情。这意味着在没有验证的情况下,可能会得到与用户期望不同的日期。买者自负

于 2013-05-14T18:48:00.063 回答
2

我的选择如下:

$(document).ready(function () {
  var userLang = navigator.language || navigator.userLanguage;

  var options = $.extend({},
    $.datepicker.regional["ja"], {
      dateFormat: "yy/mm/dd",
      changeMonth: true,
      changeYear: true,
      highlightWeek: true
    }
  );

  $("#japaneseCalendar").datepicker(options);
});
#ui-datepicker-div {
  font-size: 14px;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css"
          href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.min.css">
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js"></script>
</head>
<body>
<h3>Japanese JQuery UI Datepicker</h3>
<input type="text" id="japaneseCalendar"/>

</body>
</html>

于 2017-12-05T04:21:59.087 回答
2

您可以添加并尝试这种方式:

HTML文件:

<p><input type="text" id="demoDatepicker" /></p>

JavaScript文件:

$(function() {  
    $("#demoDatepicker").datepicker({
        dateFormat: 'dd/mm/yy',
        changeMonth: true,
        changeYear: true,
        constrainInput: false
    });
});
于 2018-05-29T13:25:28.860 回答
1

下面的代码可能有助于检查表单是否有超过 1 个日期字段:

<!doctype html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>jQuery UI Datepicker - Display month &amp; year menus</title>
    <link rel="stylesheet" href="jquery-ui.css" />
    <script src="jquery-1.8.3.js"></script>
    <script src="jquery-ui.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script>
    function pickDate(DateObject){
//      alert(DateObject.name)
       $(function() {
               $("#"+DateObject.name).datepicker({ dateFormat: "dd/mm/yy" }).val()
       });
    }
/*
    $(function() {
        $( "#datepicker" ).datepicker({
            changeMonth: true,
            changeYear: true
        });
    });
*/
    </script>
</head>
<body>

<p>From Date: <input type="text" name="FromDate" id="FromDate" size="9" onfocus="pickDate(this)"/></p>
<p>To Date: <input type="text" name="ToDate" id="ToDate" size="9" onfocus="pickDate(this)" /></p>


</body>
</html>
于 2012-12-04T15:52:37.620 回答
1

我用这个:

var strDate = $("#dateTo").datepicker('getDate').format('yyyyMMdd');

它返回格式为“ 20120118”的日期Jan 18, 2012

于 2012-01-18T22:54:10.977 回答
1

终于得到了datepicker日期更改方法的答案:

$('#formatdate').change(function(){
    $('#datpicker').datepicker("option","dateFormat","yy-mm-dd");
});
于 2011-06-11T07:59:00.103 回答
0

我认为正确的方法是这样的:

var picker = $('.date-picker');
var date = $.datepicker.formatDate(
    picker.datepicker('option', 'dateFormat'),
    picker.datepicker('getDate'));

这样可以确保格式字符串只定义一次,并使用相同的格式化程序将格式字符串转换为格式化日期。

于 2012-07-17T11:31:38.397 回答
0

如果您想要这种格式“dd-mm-yy”,您必须在 Datepicker 中更改 dateformat,这将起作用...

$("#date").
({
 dateFormar:'dd-mm-yy',
}).val();
于 2021-05-01T08:30:49.177 回答
0

Here is an out of the box future proof date snippet. Firefox defaults to jquery ui datepicker. Otherwise HTML5 datepicker is used. If FF ever support HTML5 type="date" the script will simply be redundant. Dont forget the three dependencies are needed in the head tag.

<script>
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<link rel="stylesheet"href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">  
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<!--Form element uses HTML 5 type="date"-->
<div class="form-group row">
    <label for="date" class="col-sm-2 col-form-label"Date</label>
    <div class="col-sm-10">          
       <input type="date" class="form-control" name="date" id="date" placeholder="date">
    </div>
</div>

<!--if the user is using FireFox it          
autoconverts type='date' into type='text'. If the type is text the 
script below will assign the jquery ui datepicker with options-->
<script>
$(function() 
{
  var elem = document.createElement('input');
  elem.setAttribute('type', 'date');

  if ( elem.type === 'text' ) 
  {
    $('#date').datepicker();
    $( "#date" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );     
  }
});
于 2017-09-29T02:23:29.377 回答
0

您应该data-date-format="yyyy-mm-dd"在 JQuery 中的输入字段 html 和初始数据选择器中使用,就像简单一样

$("#issue_date").datepicker({ 
    dateFormat: "yy-mm-dd",
    changeMonth: true,
    changeYear: true
});
于 2018-03-18T07:27:50.470 回答
0

这对我有用:

$.fn.datepicker.defaults.format = 'yy-mm-dd'
于 2019-05-02T20:59:59.303 回答