【问题标题】:Get two date formats from jQuery datepicker?从 jQuery datepicker 获取两种日期格式?
【发布时间】:2012-05-23 04:33:53
【问题描述】:

我有一个简单的日期选择器文本字段:

<input type="text" name="book_on" id="book_on" value="<?php echo $today; ?>"

jQuery如下:

$('#book_on').datepicker({
        dateFormat: 'mm/dd/y'
      });

This is all very straight-forward, but I also need to show the chosen date in a different format elsewhere on the page - specifically, when a date is chosen, I need to show which day of the week it is in a &lt;span&gt; 在页面上。

这将是dateFormat: 'D',但我找不到让日期选择器返回第二种日期格式的方法。我不需要编写整个代码,如果您可以使用上面的函数来提醒所选日期的星期几,那就太好了。

【问题讨论】:

    标签: javascript jquery user-interface datepicker


    【解决方案1】:

    聚会有点晚了,但我相信真正的解决方案是利用两个日期选择器属性

        altField: "#your-span",
        altFormat: "D",
    

    Setting these options 将自动以正确的格式填充元素#your-span。无需额外代码!

    【讨论】:

    • 好地方 - 如果要求只是填写页面上的另一个字段,则非常有用。
    【解决方案2】:

    您是否正在寻找类似 jsFiddle example 的东西?

    jQuery:

    var days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    $('#book_on').datepicker({
        dateFormat: 'mm/dd/y',
        onSelect: function(event, ui) {
            var dayOfWeek = $(this).datepicker('getDate').getUTCDay();
            $('#day').val(days[dayOfWeek]);
        }
    });​
    

    【讨论】:

    • 太棒了! :) 我打赌你从 w3schools 得到了几天的数组:P
    • @VisioN - 抱歉,我避免使用 w3schools。
    • 它有一个硬编码的日期名称数组,并且无法使用包含的函数专门为此目的设计
    • @Alnitak 我们的解决方案可能不是最好的,但它们是可行的。恕我直言,对此投反对票是一种不好的态度。
    • @Alnitak - 否决票是针对“无用”的答案,而不是讨论您个人认为应该编码解决方案的最佳方式。
    【解决方案3】:

    您可以使用onSelect 事件并这样做:

    var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
    $("#book_on").datepicker({
        onSelect: function(dateText, inst) {
            var day = new Date(dateText).getDay();
            $("span").text(weekday[day]);
        }
    });​
    

    演示: http://jsfiddle.net/LXCMD/

    【讨论】:

      【解决方案4】:

      这将是 dateFormat: 'D' 但我找不到让日期选择器返回第二种日期格式的方法。

      Datepicker 插件有一个 utility function 专门用于以您想要的任何格式输出日期,例如

      var t = $('#picker').datepicker('getDate');
      var myDate = $.datepicker.formatDate('D', t);
      

      因此:

      $('#book_on').datepicker({
          dateFormat: 'mm/dd/y',
          onSelect: function(dateText, inst) {
              var date = $(this).datepicker('getDate');
              $('#span').text($.datepicker.formatDate('D', date));
          }
      });​
      

      【讨论】:

      • 太棒了——这是我需要的代码,效果很好。 ⭐⭐⭐⭐⭐
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 2014-01-04
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多