【问题标题】:jquery to convert date from mm/dd/yy to yyyy-dd-mmjquery 将日期从 mm/dd/yy 转换为 yyyy-dd-mm
【发布时间】:2011-02-22 22:48:40
【问题描述】:

我收到一个 ajax 响应,其日期格式为 mm/dd/yy。如何使用 jquery 将其转换为 yyyy-mm-dd 格式? jquery 是否有内部函数来执行此操作?

【问题讨论】:

  • 如果你只得到 2 年的数字,如果你不知道是 1900 年还是 2000 年,你将如何返回 4?
  • @mVChr 这很蹩脚,但通常您认为大于 90 的 2 位数字(取决于应用程序)是在 1900 年代,而比这小的 2 位数年份是在本世纪。

标签: javascript jquery ajax jquery-plugins


【解决方案1】:

简单,无需检查输入(JavaScript,无 jQuery):

var d        = '01/25/90';   // as an example
var yy       = d.substr(6,2);
var newdate  = (yy < 90) ? '20' + yy : '19' + yy;
    newdate += '-' + d.substr(0,2) + '-' + d.substr(3,2); //1990-01-25

【讨论】:

    【解决方案2】:

    这种事情不是 jQuery 旨在促进的。 jQuery 库主要是关于 DOM 操作,对代码结构的便利性做出了各种让步。

    您需要做的是将传入地址拆分为文本,然后将其重构为兼容的 JavaScript 可解析日期,或者从字符串中获取年、月和日并使用javascript "Date()" 构造函数将它们作为数值。此代码将为您提供格式中的日期:

    此代码将为您提供格式中的日期:

    function toDate(str) {
      var rv = null;
      str.replace(/^(\d\d)\/(\d\d)\/(\d\d)\$/, function(d, yy, mm, dd) {
        if (!d) throw "Bad date: " + str;
        yy = parseInt(yy, 10);
        yy = yy < 90 ? 2000 + yy : 1900 + yy;
        rv = new Date(yy, parseInt(mm, 10) - 1, parseInt(dd, 10));
        return null;
      });
      return rv;
    }
    

    【讨论】:

      【解决方案3】:
      <script>
      
          $(document).ready(function(){   
      
              $("#date").change(function(){
                  var $d = $(this).val();  
                  var $yy = $d.substr(6,4);
                  var $dd = $d.substr(3,2);
                  var $mm = $d.substr(0,2);
                  var $newdate = $yy + '-' + $mm + '-' + $dd; 
                  $("#date").val($newdate);
              });
          })
      
      </script>
      

      【讨论】:

      • 你的答案应该包含对你的代码的解释和它如何解决问题的描述。
      • 当您有日历选择器时,您可以使用它,无论您选择什么日期,它都会将其格式更改为 yyyy-mm-dd
      猜你喜欢
      • 2013-10-25
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2012-03-05
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多