【问题标题】:How to format a date pulled from a form field with javascript如何使用javascript格式化从表单字段中提取的日期
【发布时间】:2012-03-13 01:28:04
【问题描述】:

我有一个日期选择器,可以在表单字段中生成类似 2012 年 6 月 30 日的日期。

我需要将此日期转换为 2012-06-30 用于 mysql。我可以通过以下方式接近它。

var datePart=document.getElementById('formdate').value.split(/[^0-9]+/);

然后用来生成日期。

datePart2[2] + "-" + datePart2[1] + "-" + datePart2[0]

问题是它给了我日期 2012-6-30 而不是 2012-06-30。

有没有更简单的方法来做到这一点?或者使用我当前的方法并在数字前面添加一个零(如果它是单个数字)的方法?

【问题讨论】:

    标签: javascript date datepicker


    【解决方案1】:

    开源 date.js (http://www.datejs.com/) 为 JavaScript 日期提供了一个非常广泛的框架,恕我直言,它优于 jQuery 插件。它可能超出了你对这个要求的需要,但我认为它是任何 JavaScript 程序员的武器库中值得欢迎的补充。

    格式化你的例子:

    var mySqlDate = Date.parse('6/30/2012').toString('yyyy-MM-dd');
    

    【讨论】:

    • 鉴于只需要一种格式,让访问者加载整个库有点过头了。
    【解决方案2】:

    你在使用 jQuery 吗?如果是这样,您可以使用日期格式插件,使日期操作变得容易

    http://archive.plugins.jquery.com/project/jquery-dateFormat

    【讨论】:

      【解决方案3】:

      试试这个,希望对你有帮助:

      Format date in jquery- from Sat Mar 03 2012 14:16:05 GMT+0530 to 03/03/2012

      重要的是,您需要设置一个像这样的检查条件,如果它小于 10 附加 0 [code] date

      关于这个的东西:

      function dateFormatFoo(){
      var d = new Date();
      date = d.getDate();
      date = date < 10 ? "0"+date : date;
      mon = d.getMonth()+1;
      mon = mon < 10 ? "0"+mon : mon;
      year = d.getFullYear()
      return (date+"/"+mon+"/"+year);
      }
      

      【讨论】:

        【解决方案4】:

        根据您的示例,一个简单的功能是:

        var formatUStoISOdate = (function() {
        
          function aZ(n) {
            return (n<10? '0' : '') + n;
          }
        
          var re = /[^0-9]/;
        
          return function(d) {
            var d = d.split(re);
            return d[2] + '-' + aZ(d[0]) + '-' + aZ(d[1]);
        
            // or
            // return [d[2], aZ(d[0]), aZ(d[1])].join('-');
          }
        
        
        }());
        
        alert(formatUStoISOdate('3/31/2011')); // 2011-03-31
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-31
          • 2012-11-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多