11

Googleカレンダーは私にrfc3339をスローしますが、私の日付はすべて1970年1月からのミリ秒単位です。

rfc3999:

2012-07-04T18:10:00.000+09:00

javascriptの現在の時刻:(new Date())。getTime():

1341346502585

私はカウントダウンのみを扱い、日付は扱わないため、ミリ秒が好きです。

4

2 に答える 2

19

小数点以下 3 桁と「T」を含むその形式の日付時刻は、またはコンストラクターに渡されたときの動作が明確に定義されています。Date.parseDate

console.log(Date.parse('2012-07-04T18:10:00.000+09:00'));
// 1341393000000 on all conforming engines

ただし、常に JavaScript 仕様に準拠した入力を提供するように注意する必要があります。そうしないと、無意識のうちに実装定義の解析に戻ってしまう可能性があります。これは実装定義であるため、ブラウザーや環境全体で信頼性が低くなります。これらの他の形式については、正規表現を使用した手動解析などのオプションがあります。

var googleDate = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})([+-]\d{2}):(\d{2})$/;

function parseGoogleDate(d) {
    var m = googleDate.exec(d);
    var year   = +m[1];
    var month  = +m[2];
    var day    = +m[3];
    var hour   = +m[4];
    var minute = +m[5];
    var second = +m[6];
    var msec   = +m[7];
    var tzHour = +m[8];
    var tzMin  = +m[9];
    var tzOffset = tzHour * 60 + tzMin;

    return Date.UTC(year, month - 1, day, hour, minute - tzOffset, second, msec);
}

console.log(parseGoogleDate('2012-07-04T18:10:00.000+09:00'));

またはMoment.jsのようなフル機能のライブラリ。

于 2012-07-03T20:26:59.703 に答える
4

試すことができる2つのJavascript日付ライブラリがあります。

これらは両方とも、ほぼすべての形式で日付を解析および生成できる関数を提供します。

日付を頻繁に使用する場合は、これらのライブラリのいずれかを使用することをお勧めします。毎回自分の関数をロールするよりもずっと面倒ではありません。

お役に立てば幸いです。

于 2012-07-03T20:46:11.760 に答える