04/06/13 (たとえば) を長い日付に変換する必要があります - Tue Jun 04 2013 00:00:00 GMT+0100 (BST)。Javascriptを使用してこれを行うにはどうすればよいですか? 長い日付を短い日付に変換する方法は知っていますが、その逆はできません。
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
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について
以下を使用できます。
new Date(2013, 06, 04)
...または日付文字列を直接使用する (つまり、 parseメソッドで受け入れられる日付を表す文字列):
new Date("2013/06/04");
...または、次のように日付のさまざまな部分を指定することによって:
new Date(year, month, day [, hour, minute, second, millisecond]);
これを見てください。
2013 として 13 を使用する必要があります。それ以外の場合は、デフォルトの 1913 が使用されます。
alert(new Date('04/06/2013'));