1

動的に生成された日付を 20-Apr-2013 から 20.04.13 に変換する必要があります。これまでのところ、月を変換してスペーサーを変更することができました。しかし、年を変換することはまだ私を逃れます。これが私がこれまでに思いついたものです。前進する方法は?

$(document).ready(function() {


                $('.date').each( function() {


    var oldDate = $(this).text();

    var month;

    if( oldDate.indexOf('-') > 0 ){

        var dateSplit = oldDate.split('-');

        var year = dateSplit[2];

        if( year.length == 2){
            year = year;
        }

        switch(dateSplit[1])
        {
            case 'Jan': month = "01";
            break;
            case 'Feb': month = "02";
            break;
            case 'Mar': month = "03";
            break;
            case 'Apr': month = "04";
            break;
            case 'May': month = "05";
            break;
            case 'Jun': month = "06";
            break;
            case 'Jul': month = "07";
            break;
            case 'Aug': month = "08";
            break;
            case 'Sep': month = "09";
            break;
            case 'Oct': month = "10";
            break;
            case 'Nov': month = "11";
            break;
            case 'Dec': month = "12";
            break;
        }

        $(this).text(dateSplit[0] + '.' + month  + '.' + year);
    }
    else if( oldDate.indexOf(('/') > 0 ) ){

        var dateSplit = oldDate.split('/');

        var year = dateSplit[2];

        if( year.length == 2){
            year = year;
        }

    }


    });

  });
4

4 に答える 4

2
"20-Apr-2013".replace(/(\d+)-(\w+)-(\d+)/,function(p,p1,p2,p3) {
  return p1+'.'+String("00"+('janfebmaraprmayjunjulaugsepoctnovdec'.indexOf(p2.toLowerCase())/3+1)).slice(-2)+'.'+p3.slice(-2);
});
于 2013-04-11T02:25:28.670 に答える
1

この正確な問題を解決するためのライブラリmoment.jsを試すことができます。使用しない場合でも、ソース コードがいくつかのポインターを提供する場合があります。

oldDate を Date オブジェクトに変換して、そこから移動できますか?

var newDate = new Date(oldDate);
var month = newDate.getMonth();
var year = newDate.getFullYear().toString().substr(2, 2); //get the last 2 digits of the full year

これは、JavaScript日付オブジェクトの関数のリファレンスです

于 2013-04-11T01:59:28.600 に答える
1

最初にそれをDateに変換することをお勧めします:

$('.date').each(function() {

    var d = new Date($(this).text());

    $(this).text(d.getDate() + '.' + (d.getMonth() + 1) + '.'
                    + ('' + d.getFullYear()).substr(2, 2));

});
于 2013-04-11T02:00:57.573 に答える