如何使用JavaScript从日期字符串中获取时间。
我的约会字符串如下:2013-04-08T10:28:43Z
如何以小时和分钟格式分割时间。我想以下列方式显示活动流:
xxx已在2小时前更新
yyy已更新3分钟前
答案 0 :(得分:14)
只需创建新的Date对象:
var myDate = new Date("2013-04-08T10:28:43Z");
var minutes = myDate.getMinutes();
var hours = myDate.getHours();
答案 1 :(得分: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();
答案 2 :(得分: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对象上调用getHours
和getMinutes
。
如果你跳过这个,那么直接获得+sp[3]
几个小时,+sp[4]
持续几分钟。
计算差异
由于您似乎必须与现在进行比较,您将通过这种方式获得时间差异:
var timeDifference = new Date(new Date - dateObject);
然后在getHours
上致电getMinutes
和timeDifference
。
答案 3 :(得分:0)
这是什么称为ISO字符串。有一些实用程序可以解析ISO字符串,就像常规JavaScript那样,例如Dojo。
var date = dojo.date.stamp.fromISOString("2013-04-08T10:28:43Z");
http://dojotoolkit.org/reference-guide/1.8/dojo/date/stamp.html
答案 4 :(得分:-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);