14

JavaScript を使用して日付文字列から時刻を取得するにはどうすればよいですか。

私の日付文字列は次のようになっています: 2013-04-08T10:28:43Z

時間と分の形式で時間を分割する方法。次の方法でアクティビティ ストリームを表示したいと思います。

xxx は 2 時間前に更新されました
yyy は 3 分前に更新されました

4

5 に答える 5

20

新しい Date オブジェクトを作成するだけです:

var myDate = new Date("2013-04-08T10:28:43Z");

var minutes = myDate.getMinutes();
var hours = myDate.getHours();
于 2013-04-10T06:58:44.837 に答える
2

シンプルな Javascript で十分です: Date.parse は文字列をタイムスタンプに変換します:

var date_string = '2013-04-08T10:28:43Z';

var your_date_object = new Date();
your_date_object.setTime(Date.parse( date_string ));

var min = your_date_object.getUTCMinutes();
var hour = your_date_object.getUTCHours();
于 2013-04-10T06:55:04.750 に答える
1

dateString から日付を抽出する

最初に数字を抽出します

var sp = dateString.match(/\d+/g)

次に、Date オブジェクトを作成するか、この手順をスキップできます

var dateObject = new Date(+sp[0], +sp[1]-1, +sp[2], +sp[3], +sp[4], +sp[5])

そして、この Date オブジェクトに対してgetHoursandを呼び出します。getMinutes

これをスキップする+sp[3]と、何時間も何+sp[4]分も直接取得できます。


差を計算する

現在と比較する必要があるように見えるので、次のように時差を取得します。

var timeDifference = new Date(new Date - dateObject);

そして、呼び出しgetHoursgetMinutesオンにしtimeDifferenceます。

于 2013-04-10T07:21:38.633 に答える
0

これは ISO 文字列と呼ばれるものです。Dojo など、ISO 文字列を通常の JavaScript 日付として解析するユーティリティがあります。

var date = dojo.date.stamp.fromISOString("2013-04-08T10:28:43Z");

http://dojotoolkit.org/reference-guide/1.8/dojo/date/stamp.html

于 2013-04-10T06:47:54.297 に答える
-1
var curr_date = new Date();
var test_date = new Date("2016-01-08 10:55:43");

hours_diff=Math.abs(test_date.getHours()-curr_date.getHours());
minutes_diff=Math.abs(test_date.getHours()*60+test_date.getMinutes()-curr_date.getHours()*60-curr_date.getMinutes());
console.log("xxx has updated "+hours_diff+" hours ago");
console.log("xxx has updated "+minutes_diff+" minutes ago"); //not so beautiful

///STILL IF THE date is a string and !!NOT CREATED with DATE 
/// "Get the time from a date string" might have this solution

var date = "2016-01-08 10:55:43";
var hours = date.slice(-8);

console.log("hours and minutes string is "+hours);

フィドルテスト

于 2016-02-01T17:19:56.253 に答える