3

お知らせ下さい:

次のような単純な日付を変換するために、正規表現や文字列の置換などを使用しない方法はありますか?

Fri Jun 21 00:00:00 UTC+0100 2013

ISO8601形式の日付 にyy-mm-dd?

PS:8601日時ではなく、日付のみ。

4

4 に答える 4

5

moment.js を使用http://momentjs.com/

moment(new Date(), "YYYY-MM-DD HH:mm Z");

また:

var date = moment("Fri Jun 21 00:00:00 UTC+0100 2013");
moment("Fri Jun 21 00:00:00 UTC+0100 2013", "YYYY-MM-DD HH:mm Z");

それを解析して、必要な方法で非常に簡単にフォーマットできますhttp://momentjs.com/docs/解析用の ISO-8601 日付とも互換性があります。

于 2013-06-04T13:29:18.623 に答える
4

はい !

JavaScriptの日付関数.

var d = new Date("Fri Jun 21 00:00:00 UTC+0100 2013")
alert( d.getFullYear() + '-' + d.getUTCMonth() + '-' + d.getUTCDay())

2行のコード:)

詳細はこちら: http://www.w3schools.com/jsref/jsref_obj_date.asp

于 2013-11-23T15:36:10.347 に答える
3

正規表現や文字列置換なし? はい、フォーマットが固​​定されていると仮定すると、必要な特定のビットを使用.slice()および/または.substr()抽出して再配置できます(そのような方法が「など」のカテゴリに該当しない限り):

var input = "Fri Jun 21 00:00:00 UTC+0100 2013";

var year = input.slice(-4),
    month = ['Jan','Feb','Mar','Apr','May','Jun',
             'Jul','Aug','Sep','Oct','Nov','Dec'].indexOf(input.substr(4,3))+1,
    day = input.substr(8,2);

var output = year + '-' + (month<10?'0':'') + month + '-' + day;

または、先に進んで、正規表現の置き換えで愚かになることもできます。

var output = input.replace(/^[^\s]+\s([^\s]+)\s(\d+)\s.*(\d{4})$/,function(m,p1,p2,p3) {
   var month = ['Jan','Feb','Mar','Apr','May','Jun',
                'Jul','Aug','Sep','Oct','Nov','Dec'].indexOf(p1)+1;
   return p3 + '-' + (month<10?'0':'') + month + '-' + (p2.length===1?'0':'') + p2;
});

もちろん、そのようなコードをreformatDate()メソッドでラップしたいと思うでしょう。

(日付文字列の「単純な」再フォーマットの場合、開始フォーマットが によって認識されるものでない限り、Dateオブジェクトとそのメソッドは特に役に立ちませんDate.parse()。)

于 2013-06-04T13:51:47.647 に答える
0

、 などのget関数を使用しようとしないでください。例:getDate()getMonth()

var today = new Date();
var d1 = new Date();
alert(d1);
var date = d1.getDate();
var month = d1.getMonth() + 1;
var year = d1.getFullYear();

次に、表示する方法で文字列を構成します...!

于 2013-06-04T13:30:26.457 に答える