0

new Date() を使用して、php から取得した日付文字列を ajax 呼び出し (これは今のところ関係ありません) で解析しようとしています。

しかし、私は間違った結果を得続けています。

私の弦は2013-05-09 20:56:17

私がする時

var something = new Date("2013-05-09 20:56:17");
alert(something.getMonth());

それは0を警告し続けます

私の意見では、何らかの理由で新しい日付はこの文字列を解析できません。

JS で new Date() の日付形式を指定する方法はありますか?

date()私の現在の解決策は、php's:をインポートstrtotime()してそれらを使用することです:

alert(date('m', strtotime("2013-05-09 20:56:17")));

これは機能しますが、外部の js ライブラリを使用する必要があり、それを実現するためのより良い JS の方法があると確信しています。

4

2 に答える 2

1

ハイフンの代わりにスラッシュを使用すると、次のように機能します。

var something = new Date("2013/05/09 20:56:17");
alert(something.getMonth());

必要に応じて、最初に文字列内のハイフンをスラッシュに置き換えるのは簡単です (たとえば、別の場所から日付文字列を取得している場合)。

var something = new Date("2013-05-09 20:56:17");
something = something.replace('-', '/');

JavaScript のDateコンストラクターは、ハイフンを含む日付形式、または少なくともその特定の形式を認識しないようです。

于 2013-05-23T16:17:53.090 に答える
0

ajax 日付には、PHP で別の書式指定子を選択してください。あなたが期待するフォーマットと JavaScript が期待するフォーマットは異なります。

var something = new Date("2013-05-09T20:56:17");

ISO 8601 に従って、リテラル セパレータとして表示され、時間の始まりを示す「T」に注意してください。

さまざまな [ブラウザ] JavaScript 日付形式のリファレンス

そして最後に、PHP 日付フォーマット指定子リスト:

「DATE_ISO8601」に注意してください。しかし、現時点ではそれを使用しないことをお勧めします。代わりに、より広くサポートされている日付形式を生成する可能性のある「DATE_ATOM」を使用してください (コメントは、iPhone がより快適になり、他のブラウザーで問題が発生しないことを示唆しています)。

PHP で使用するには:

$something = new DateTime('NOW');
echo $something->format('c');
echo $something->format(DateTime::ATOM); 
于 2013-05-23T18:01:15.000 に答える