0

私はJavaサーバーから次のようにフォーマットされた日付を持っています:

YYYY/MM/DD 00:00:00.0

そして、それはJavaScriptが受け入れないフォーマットです。だから、私はこれを行います:

var startDate = '2012-07-27 00:00:00.0';
startDate = startDate.substring(0, 10);

その後、親切に戻​​ります2012-07-27。(注:時間のある場合とない場合で試してみました)

ただし、2つの日付を比較するために使用できる日付形式に変換したいと思います。だから、私はこれを実行します:

startDate = new Date(startDate);

最後に、これをログに返します。Invalid Date

したがって、日付を比較するために、次のようになります。

if(currentDate > startDate)

自分が持っているフォーマットを受け入れられるフォーマットに変換して、さまざまな日付のそれぞれを比較できるようにする必要があります。

ありがとう!

4

4 に答える 4

0

文字列形式に互換性がないため、新しいDate(datestring)は機能しません。正規表現を使用して文字列を自分で解析し、年、月、日付、分、秒の明示的な値を使用して新しいDateオブジェクトを作成できます。有効な形式については、 Date.parseを参照してください

または 、文字列の例を解析した後、このhttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTCを使用します。

gmtDate = new Date(Date.UTC(2012, 07, 27, 0, 0, 0));
于 2012-07-27T22:06:11.000 に答える
0

Zetafleetsを使用できます-iso8601のjavascriptdateparse

于 2012-07-27T22:12:14.417 に答える
0

javascriptライブラリの使用が許可されている場合は、datejs(datejs.com)およびDate.parseExact()関数を使用できます。

Date.parseExact(startDate, "yyyy/MM/dd")

Or if you can't or don't like to use library for this purpose you can encapsulate the custom logic for transforming this string into the proper date using regex, for example as ama2 suggested through:

Date.parseExact = function(dateString, format) { ... your implementation here } 
于 2012-07-27T22:15:17.783 に答える
-1

If your dates use 24 hour time, rather than 12 hour AM/PM, and they are always in that exact format, a direct string comparison will yield the correct result. In other words,

'2012-07-27 00:00:00.0' > '2012-07-26 00:00:00.0' === true
'2012-07-27 00:00:00.0' > '2012-07-26 23:59:99.9' === true
'2012-07-27 10:00:00.0' > '2012-07-27 12:00:00.0' === false

Sometimes the easiest way is right there in front of you ;)

于 2012-07-27T22:23:08.920 に答える