2012-05-10 11 views
4

Google Calendar APIの日付形式でdatajsを使用する際に問題があります。私は信じている日時書式はRFC3339であり、これはこれはdatejsドキュメントheredatejsを使用してJavaScriptを解析するRFC3339 datetime

Date.parse('1985-04-12T23:20:50Z')   // RFC 3339 Formats 

からであるカレンダーのAPI

2012-01-05T08:45:00Z 

から返されたサンプル日時である。しかし、これは単にnullを返します。使用Date.parseExact OR:

私は金2012年5月11日00:00:00 GMT + 0100(BST)

+0

どのブラウザとブラウザのバージョンを使用しますか? IE7-8? 'Date.parse( '1985-04-12T23:20:50Z')' IE7-8の 'NaN'を返します。 FFでは正しい値が返されました。 @AndrewD。 –

+0

ChromeでJavaScriptコンソールを使用しています –

+0

@mplungjanありがとうございますが、datejsとdatejsを使用したいので役に立たないので、1985-04-12T23:20:50Zを使用できるはずです。あなたがdatejs.comに行くと、彼らのウェブサイトに日付を入力することができ、正常に動作します。 –

答えて

6

が解決

Date.today().next().friday() 

リターンとして正しく動作datejsを持っていると仮定していますthis versionこのBug report

DEMO using date.js

012に従って私はtestsuiteのうちアサーション取るときに私は

null 
http://datejs.googlecode.com/files/date.js 
Line 13 

を取得する最初のバージョン使用


:ここ

// null 
console.log('Date.parse("1985-04-12T23:20:50Z")', 
    Date.parse('1985-04-12T23:20:50Z')); 


// my previous answer works 
console.log('Date.parse("1985-04-12T23:20:50Z".replace(...))', 
    Date.parse('1985-04-12T23:20:50Z' 
      .replace(/\-/g,'\/') 
      .replace(/[T|Z]/g,' ') 
    ) 
); 

// the test suite without the Z works 
console.log('1985-04-12T23:20:50', 
    new Date(1985,3,12,23,20,50).equals(Date.parse('1985-04-12T23:20:50'))); 

// but this one fails when not in the test suite  
try { 
    console.log('1985-04-12T23:20:50Z', 
    new Date(1985,3,12,23,20,50).equals(Date.parse('1985-04-12T23:20:50Z'))); 
} 
catch(e) { 
    console.log('1985-04-12T23:20:50Z',e.message); 
} 

を日付を使用しない場合、この問題のためにolder answerです。 js

+0

Date.parseExact( "1985-04-12T23:20:50Z"、 "yyyy-MM-ddTHH:mm:ssZ")は正常に機能しているようです。 –

+0

http://www.datejs.com/test/date_and_time/index.htmlによるとDate.parseExact( "1985-04-12T23:20:50Z"、 "yyyy-MM-ddTHH:mm:ssZ" ") –

+0

したがって、上記のバージョンを使用するか、parseExactを使用してください。私は速度がここで問題ではないと思う。 – mplungjan

関連する問題