0

javascript の日付を MM/dd/yyyy から yyyy/MM/dd に変換しようとしています

これはうまくいきます:

var d = new Date("08/08/2012");
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);

出力 = 2012/7/8

/////////////////////////////////////////////// /

これはしませ:

var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);

そしてどちらもこれをしません:

var dateString = "08/08/2012";
var d = Date.parse(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);

文字列変数で機能させるにはどうすればよいですか? ありがとう

〜マイ

4

3 に答える 3

5
var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);

それはうまくいくはずです。JavaScript は月をゼロから始まる値として保存することに注意してください。

先頭にゼロを付けたい場合は、いくつかの魔法を行う必要があります。

var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + ('0' + (d.getMonth()+1)).slice(-2) + "/" + ('0' + d.getDate()).slice(-2);
document.write(dateString);​

jsフィドル

あなたの例が機能しない理由Date.parse( )は、その関数が Date オブジェクトではなくタイムスタンプ (1970 年からのミリ秒数) を返すためです。getFullYear()したがって、タイムスタンプのような関数を呼び出すことはできません。

于 2012-08-09T20:20:51.850 に答える
4

If all you need to do is re-order the values, you can do:

var dateString = "08/08/2012";
var dateElements = dateString.split("/");
var outputDateString = dateElements[2] + "/" + dateElements[0] + "/" + dateElements[1];
document.write(outputDateString );
于 2012-08-09T20:31:53.183 に答える
1

コードがjsFiddleで機能することをMrSlayerで確認できます。

を使用しようとする試みは、実際には を使用するDate.parse()必要がありますDate(String(dateString))

月ごとに 1 を追加することを忘れないでください。

于 2012-08-09T20:32:47.540 に答える