2013-04-10 190 views
6

如何从使用JavaScript的日期字符串中获取时间。从日期字符串获取时间

我datestring是通过以下方式:2013-04-08T10:28:43Z

如何分割小时和分钟格式的时间。我想说明的活动流按以下方式:

XXX已经更新2小时前
YYY已经更新了3分钟前

+2

你可以看看这个 Darshan 2013-04-10 06:45:35

+0

http://www.w3schools.com/js/js_obj_date.asp - 教程 http://www.w3schools.com/jsref/jsref_obj_date.asp - javascript日期对象引用 – Viliam 2013-04-10 07:11:58

+0

[JavaScript的日期ISO8601]的可能重复( http://stackoverflow.com/questions/6228302/javascript-date-iso8601) – 2013-04-10 07:31:44

回答

1

简单的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(); 
+0

但日期是ISO字符串格式 – vishnu 2013-04-10 06:56:58

10

只需创建新的Date对象:

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

var minutes = myDate.getMinutes(); 
var hours = myDate.getHours(); 
+2

为什么这是downvoted? JavaScript支持ISO 8601格式。 – 2013-04-10 07:36:14

+0

@Jack谢谢!最后有人合理。 – Stasel 2013-04-10 08:03:21

+0

是的,这是完全正确的。另外var seconds = myDate.getSeconds(); – pollaris 2017-08-30 15:33:10

1

从dateSt中提取一个日期环

先提取数字与

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

然后你就可以建立一个Date对象或跳过此步骤

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

并调用getHoursgetMinutes此Date对象上。

如果你跳过这个,然后直接得到+sp[3]小时和+sp[4]分钟。


计算的差异

既然你似乎与现在比较,你会得到的时间差是这样的:

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

然后调用getHoursgetMinutestimeDifference

-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); 

fiddle test