jquery将mm/dd/yy的日期转换为yyyy-dd-mm

jquery将mm/dd/yy的日期转换为yyyy-dd-mm

问题描述:

我收到格式为mm/dd/yy的日期的ajax响应。我怎样才能将其转换为使用jQuery的格式yyyy-mm-dd? jquery是否有内部函数来执行此操作?jquery将mm/dd/yy的日期转换为yyyy-dd-mm

+3

如果你只找两年份数字,你打算怎么返回4,如果你不知道它是否是1900年或2000年代做? – mVChr 2011-02-22 22:52:40

+1

@mVChr这是蹩脚的,但通常你会认为大于90(取决于应用程序)的两位数数字是在1900年代,而2位数字年代比在本世纪还小。 – Pointy 2011-02-22 22:59:06

用简单的没有检查输入(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 

这种事情不是jQuery设计的目的。 jQuery库主要是关于DOM操作的,为编码结构提供了各种优惠。

你需要做的是将传入地址分割为文本并将其重建为符合JavaScript的可解析日期,否则只需从字符串中获取年份,月份和日期并使用javascript“Date ()”构造函数,这些作为数字values.This代码会给你一个日期从您的格式:

此代码会给你从你的格式的日期:

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; 
} 

<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> 

+0

您的回答应该包含您的代码的说明以及如何解决问题的说明。 – AbcAeffchen 2014-09-22 01:52:11

+0

当你有日历选择器时,你可以使用它,不管你选择什么日期,它会将其格式更改为yyyy-mm-dd – 2014-09-30 22:58:59