4

04/06/13 (たとえば) を長い日付に変換する必要があります - Tue Jun 04 2013 00:00:00 GMT+0100 (BST)。Javascriptを使用してこれを行うにはどうすればよいですか? 長い日付を短い日付に変換する方法は知っていますが、その逆はできません。

4

4 に答える 4

4

コンストラクターの解析機能を試すことができ、その結果を文字列化できます。Date

> new Date("04/06/13").toString()
"Sun Apr 06 1913 00:00:00 GMT+0200" // or something

DD/MM/YYしかし、解析は実装に依存しており、奇妙な形式を正しく解釈するエンジンは多くありません。を使用していればMM/DD/YYYY、おそらくどこでも認識されるでしょう。

代わりに、それがどのように解析されるかを確認したいので、自分でそれを行い、単一の部分をコンストラクターにフィードする必要があります:

var parts = "04/06/13".split("/"),
    date = new Date(+parts[2]+2000, parts[1]-1, +parts[0]);
console.log(date.toString()); // Tue Jun 04 2013 00:00:00 GMT+0200
于 2013-05-18T17:46:20.197 に答える
2

split メソッドの代わりに lastIndexof と slice を使用して、年を ISO8601 形式に変更します。これにより、ブラウザー間で機能することが知られている非標準の文字列が得られ、日付解析メソッドが使用されます。(問題のような固定パターンを想定)

でも、

それがどのように解析されるかを確認したい場合は、自分でそれを行い、単一の部分をコンストラクターにフィードする必要があります:

、これは分割方法を使用することを意味します。 @Bergi answer を参照してください。

var string = "04/06/13",
    index = string.lastIndexOf("/") + 1,
    date = new Date(string.slice(0, index) +  (2000 + parseInt(string.slice(index), 10)));

console.log(date);

出力

Sat Apr 06 2013 00:00:00 GMT+0200 (CEST) 

jsfiddleについて

または、さらに別の方法としてmoment.jsを使用することもできます

var string = "04/06/13";

console.log(moment(string, "DD/MM/YY").toString());

出力

Sat Apr 06 2013 00:00:00 GMT+0200 (CEST) 

jsfiddleについて

于 2013-05-18T18:43:58.707 に答える
1

以下を使用できます。

new Date(2013, 06, 04)

...または日付文字列を直接使用する (つまり、 parseメソッドで受け入れられる日付を表す文字列):

new Date("2013/06/04");

...または、次のように日付のさまざまな部分を指定することによって:

new Date(year, month, day [, hour, minute, second, millisecond]);

これを見てください。

于 2013-05-18T17:44:26.920 に答える
0

2013 として 13 を使用する必要があります。それ以外の場合は、デフォルトの 1913 が使用されます。

alert(new Date('04/06/2013'));
于 2013-05-18T17:47:57.460 に答える