【问题标题】:Jquery datepicker format date not workingJquery datepicker格式日期不起作用
【发布时间】:2012-04-10 21:26:48
【问题描述】:

这是我的代码:

$(function () {
    $("#datepicker").datepicker({ dateFormat: 'DD-MM-YY' });
});

显示日期时间选择器,但格式为 mm/dd/yyyy。为什么它不起作用?

【问题讨论】:

标签: jquery datepicker


【解决方案1】:

只尝试 format 选项而不是 dateFormat

$('#datepicker').datepicker({
   format: 'dd-mm-yyyy' 
});

【讨论】:

  • 你也救了我。干杯!
  • 这是有效的。尝试仅格式化选项而不是 dateFormat。因为由于日期选择器版本不同。
  • 谢谢,dateFormat: 'dd-mm-yy' 在我的代码中不起作用。格式有效
【解决方案2】:

根据使用的日期选择器版本,正确的格式可能是:

$('#datepicker').datepicker({ format: 'yyyy-mm-dd' });

【讨论】:

    【解决方案3】:

    试试这个

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

    小写字母可以使用

    【讨论】:

      【解决方案4】:

      这是默认设置,这意味着它无法识别您的选项。

      尝试:

      dateFormat: 'dd-mm-yy'
      

      (小写字母)

      【讨论】:

      • 这很令人困惑,但“yy”实际上给了你 4 位数的年份。
      • 取决于哪个日期选择器,以及它的哪个分布。不同的对大小写 y 和 d 使用不同的含义。每个人都想为他们的“特殊”版本重新发明一切,而不是坚持 strftime 标准。它是“格式”还是日期格式?一直在摆弄,直到你“发现”特定作者认为的“更酷的方式”。
      • @JosephK 完全是这样! API文档非常清楚该属性是“dateFormat”,但是在阅读了您的评论后,我尝试了“format”并开始工作。哦,为了更有趣,我需要使用“yyyy”来表示四位数的日期。是的,一致性 FTW :-/
      • 如果您发现“格式”并使用“yyyy”而不是“yy”对您有用,那么您实际上可能正在使用 datepicker 的引导版本。请务必检查您的脚本 src 包含的 .js 文件,以查看您正在使用谁的日期选择器。
      【解决方案5】:

      设置默认格式会解决问题,这个解决方案对我有用,而以上所有方法都没有。

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

      来源:Datepicker: Adding dateFormat is giving an error

      【讨论】:

        【解决方案6】:

        查看这个对我有用的 Jsfiddle 链接:

        http://jsfiddle.net/nEGTv/3/

        【讨论】:

          【解决方案7】:

          完整示例:

          在jsp中:

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

          在脚本中:

          function datepicker() {
          
            $("#datepicker").datepicker({
              showButtonPanel: true,
              dateFormat: 'yy-mm-dd',
              onSelect: function() {
                  var dateObject = $('#datepicker').datepicker().val();
                  alert(dateObject);
              }
             }
            );
          }
          

          【讨论】:

            【解决方案8】:

            这个对我有用

            $('#datepicker').datepicker({ format: 'dd-mm-yyyy' });
            

            【讨论】:

              【解决方案9】:

              如果您从后端框架/服务获取默认日期值,即Asp.Net MVC,则在您对输入启动datepicker 时设置dateFormat 最初不会格式化日期。

              $(function() {
                  $('#date-start').datepicker({
                      dateFormat: 'mm/dd/yy',
                      onSelect: function(startDate) {
                          ...
                      }
                  });
              });
              

              上面的截图显示,即使我用像03/15/2018 这样的短日期初始化输入,datepicker 最初也不会选择格式。之后的所有选择都会按预期工作。

              解决方法是您必须在 datepicker 初始化之后手动设置 dateFormat 选项:

              $(function() {
                  // $('#date-start').datepicker({
                  //     dateFormat: 'mm/dd/yy',
                  //     onSelect: function(startDate) {
                  //         ...
                  //     }
                  // });
                  // $('#date-start').datepicker('option', 'dateFormat', 'mm/dd/yy');
              
                  // Or you can chain them
                  $('#date-start').datepicker({
                      dateFormat: 'mm/dd/yy',
                      onSelect: function(startDate) {
                          ...
                      }
                  }).datepicker('option', 'dateFormat', 'mm/dd/yy');
              });
              

              【讨论】:

                【解决方案10】:
                $('.datepicker').datepicker({
                        format: 'dd-mm-yyyy',
                        autoclose: true
                    })
                

                【讨论】:

                • 虽然这段代码可以回答这个问题,但提供一些关于它如何以及为什么解决问题的额外上下文将提高​​答案的长期价值。
                【解决方案11】:

                试试这个:

                $(function() {
                    $('#datepicker').datepicker({
                        dateFormat: 'dd/mm/yy',
                    }).datepicker('option', 'dateFormat', 'dd/mm/yy');
                });
                

                100% 有效。

                【讨论】:

                  【解决方案12】:

                  C#:-

                   [Column(TypeName = "date")]
                          [Display(Name = "Date of Birth")]
                          [Required]
                          [DataType(DataType.Date)]
                          [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
                          public DateTime? DOB { get; set; }
                  

                  CSHTL:-

                   @Html.EditorFor(model => model.DOB, new { htmlAttributes = new { @class = "form-control" , @required = "required", @autocomplete="off"} })
                  
                          $(document).ready(function () {
                          var validationerror = false;
                           $('input[type=date]').datepicker({
                               dateFormat: "yy-mm-dd",
                               changeMonth: true,
                               changeYear: true,
                               yearRange: "-60:+0"
                           });
                  

                  【讨论】:

                    【解决方案13】:

                    我有类似的问题:dateFormat 已设置为默认值,但它不起作用。

                    $.App.Utils.DatePicker = {
                      initialize: function(event) {
                        $.datepicker.setDefaults({
                          dateFormat: 'dd.mm.yy',
                          firstDay: 1,
                          changeMonth: true,
                          changeYear: true,
                          showOtherMonths: true,
                          selectOtherMonths: true,
                          showOn: 'both',
                          buttonImage: '/assets/calendar.png',
                          buttonImageOnly: true
                        })
                      },
                    
                    activate: function(event) {
                        this.initialize()
                        $('input.datepicker').datepicker()
                      }
                    

                    但日期仍以默认格式显示,带有斜线,例如02/03/2021。也许这个选项不能被默认覆盖。

                    工作解决方案:从setDefaults 中删除dateFormat 并在初始化日期选择器时设置它:

                    activate: function(event) {
                        this.initialize()
                        $('input.datepicker').datepicker({ dateFormat: 'dd.mm.yy' })
                    }
                    

                    Docs

                    【讨论】:

                      【解决方案14】:

                      设置默认格式会解决问题,这个解决方案对我有用,而以上所有方法都没有。

                      $.datepicker.setDefaults({ 日期格式:'yy-mm-dd' });

                      感谢此代码对我有用

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2012-04-01
                        • 1970-01-01
                        • 2019-12-14
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多