2009-11-24 3 views
52

は、私はそれを変換したい午後5時57分35秒

この

24 - 11月 - 2009年のように、日付と時刻を表示していますUnixのタイムスタンプに日付と時刻の変換します私はそれを簡単に操作することができるので、UNIXのタイムスタンプ。私は文字列の各部分に一致する正規表現を使用する必要があり、それからunixのタイムスタンプを解決する必要があります。

私は正規表現でひどいですが、私はこれを思いついた。改善を提案してください。^

/((\d){2}+)-((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)+)-((\d){4}+) ((\d){2}+):((\d){2}+):((\d){2}+)/gi 

どうすればいいですか?

+0

コンプリート側のコメントが、毎回私は私が思う自分の名前を参照してください「ベンShalockロックベン」(参考文献:http://www.discogs.com/House-Of-Pain-Shamrocks-And-Shenanigans-Boom -Shalock-Lock-Boom/release/229941 :) –

+1

私の悪い双子の弟、私たちは彼について話しません。 –

+0

重複:http://stackoverflow.com/questions/1457607/how-to-convert-a-gmt-timestamp-to-unix-timestamp-javascript 、ここ http://stackoverflow.com/questions/ 1416296/long-format-from-atom-feed-from- –

答えて

85

日付の解析機能が必要な場合は、date.jsをご覧ください。それはあなたがそれに投げることができるちょうどあらゆる日付文字列を取り、あなたにJavaScriptのDateオブジェクトを返します。

Dateオブジェクトを取得したら、1970年1月1日からのミリ秒を示すgetTime()メソッドを呼び出すことができます。その結果を1000で割ってunixタイムスタンプ値を取得するだけです。

はコードでは、ちょうどその、date.jsを含める:

var unixtime = Date.parse("24-Nov-2009 17:57:35").getTime()/1000 
+6

あなたはそのフォーマットを解析するためにライブラリを必要としませんか? – Dexter

+1

date.jsがなければ、Date.parseは文字列を受け取り、UNIXのタイムスタンプを返します。しかし、フォーマットについては非常に厳しいです。 OPの例では、string.replace( ' - '、 '/')が必要です。それ以外は、すべての現代のブラウザでうまくいくと私は確信しています。 私はdate.jsがはるかに信頼性が高いことに同意します。 – Marco

+4

あなたの正規表現に固執してください。固定の日付形式を使用している場合、ローカライズされたjavascriptライブラリは過剰です。このフォーマットを制御できる場合は、ISO8601のように中立で解析しやすいものを使用することを検討する必要があります。 – peller

52

は、上記の回答に機能していないgetTimeように思えます。

Date.parse(currentDate)/1000 
+0

Date.parse('19 -04-2015 18:31:00 ')/ 1000これをブラウザコンソールでコピーしました。NaNに解決策を与えることができますか@chovy –

+2

私はあなたの日付を推測していますフォーマットされていません。モーメント(日付文字列).unix() – chovy

+0

日付はdd-mm-yy H:i:s形式です。間違ってる? –

2

あなたはDate.getTime()機能、または分割したときにミリ秒単位で時間を返しDateオブジェクトそのものを使用することができます。

var d = new Date(); 

d/1000 
> 1510329641.84 

d.getTime()/1000 
> 1510329641.84