web-dev-qa-db-ja.com

JavaScript / jQueryでのUNIXタイムスタンプへの日付文字列変換

この形式の日付文字列があります:

2009-07-15 00:00:00 - 2009-07-15 08:16:23

誰もが日付文字列を微調整して、タイムスタンプを次のようなものにするのを手伝ってくれますか?

1247634000 - 1247663783

使っています GMT-5タイムゾーン。

どのようなJavaScriptまたはjQueryテクニックを使用できますか?

34
sozhen
var input = "2009-07-15 00:00:00 - 2009-07-15 08:16:23";
input = input.split(" - ").map(function (date){
    return Date.parse(date+"-0500")/1000;
}).join(" - ");

デモ

Date.parse docs

注: Array.map を使用しているため、これは古いブラウザーでは機能しませんが、簡単にシムできるはずです。

19
Some Guy

Jsで日付を操作する場合は、 Moment Date libを使用することを強くお勧めします。本当に軽くて素晴らしいです。

var timeStamp = ( moment('2009-07-15 00:00:00').unix() )*1000
65
Grzegorz Kaczan

javascriptでは、文字列をDateオブジェクトコンストラクタに直接渡すことができます

var date = new Date('2009-07-15 00:00:00'.split(' ').join('T'))

それはあなたに日付オブジェクトを与え、あなたはそれからタイムスタンプを取得します

date.getTime() / 1000

getTimeはミリ秒単位のタイムスタンプを提供するため、1000で除算します

作業デモ

注:

Firefoxは指定された日付時刻形式を解析できないため、最初に適切な形式に変換する必要があります。そのためには、日付と時刻コンポーネント間のスペースを「T」に置き換えるだけで有効なISO 8601形式になり、 firefoxはそれを解析することができます

参照:

MDNのDate.parse

ISO 8601日付形式

ここで尋ねられた同じ質問

20
Saket Patel

splitメソッドを使用すると、日付時刻形式を日付に変更できます。これは非常にシンプルで誰にとっても簡単です。

 var str = "2017-05-09T00:00:00.000Z";
 var res = str.split("-",2);
 var res = str.split("T",1);
 var temp=res;
0
Jatin Raghav