「2015-01-16 22:15:00」という形式の日付と時刻の文字列を解析する必要があります。これをJavaScript Dateオブジェクトに解析したい。これに関する助けはありますか?
いくつかのjqueryプラグイン、moment.js、date.js、xdate.jsを試しました。まだ運がありません。
Moment.jsでは、 String + Formatコンストラクター を使用してモーメントオブジェクトを作成できます。
var momentDate = moment('2015-01-16 22:15:00', 'YYYY-MM-DD HH:mm:ss');
次に、 toDate()メソッド を使用して、JavaScript日付オブジェクトに変換できます。
var jsDate = momentDate.toDate();
new Date("2015-01-16T22:15:00")
Date.parse() を参照してください。
文字列はISO-8601形式である必要があります。他の形式を解析する場合は、 moment.js を使用します。
moment("2015-01-16 22:15:00").toDate();
より良いソリューション、私は現在date.jsを使用しています- https://code.google.com/p/datejs/
このように私のHTMLページにスクリプトを含めました-
<script type="text/javascript" src="path/to/date.js"></script>
次に、形式を指定して日付文字列「2015-01-16 22:15:00」を解析しました。
var dateString = "2015-01-16 22:15:00";
var date = Date.parse(dateString, "yyyy-MM-dd HH:mm:ss");
私はmoment.jsを使用しようとしていました。しかし、「ReferenceError:moment is not defined」というエラーが発生していたため、今はスキップしなければなりませんでした。今のところ一時的な回避策を使用しています。
function parseDate(dateString) {
var dateTime = dateString.split(" ");
var dateOnly = dateTime[0];
var timeOnly = dateTime[1];
var temp = dateOnly + "T" + timeOnly;
return new Date(temp);
}
目的の形式であることを確認し、エラーチェックを行う必要がない場合は、splitを使用して手動で解析できます(必要に応じて置き換えます)。私は自分のプロジェクトで似たようなことをする必要があり(MM/DD/YYYY HH:mm:ss:sss)、あなたのフォーマットに合うようにソリューションを修正しました。 月の1の減算に注意してください。
var str = "2015-01-16 22:15:00";
//Replace dashes and spaces with : and then split on :
var strDate = str.replace(/-/g,":").replace(/ /g,":").split(":");
var aDate = new Date(strDate[0], strDate[1]-1, strDate[2], strDate[3], strDate[4], strDate[5]) ;