如何在javascript中获得两个原始日期之间的分钟差
How to obtain difference in minutes between two raw dates in javascript?
如何在javascript中获得两个原始日期之间的分钟差?即用作"2分钟前"、"10分钟前"等
我所说的RAW是指这种格式->2015-02-05T03:1:33.301Z(var x=new Date())
这就是我所拥有的,但我总是在返回值中得到NaN。。。
function getMinutesBetweenDates(startDate, index) {
var endDate = new Date();
var diff = endDate - startDate;
return (diff / 60000);
}
谢谢你的帮助。
我认为问题在于调用函数的方式。
你应该像下面这样称呼它
var startDate = new Date("2015-02-05T03:11:33.301Z");
getMinutesBetweenDates(startDate);
它会打印出类似下面的东西
11.711916666666667
只需在返回值之前使用Math.floor
即可获得11
的结果。
现代浏览器将正确解析OP格式(ISO 8601版本)的字符串,而IE 8及更低版本的旧浏览器则无法解析。手动解析字符串要安全得多:
function parseISOutc(s) {
var b = s.split(/'D/);
return new Date(Date.UTC(b[0], b[1] - 1, b[2], b[3], b[4], b[5], (b[6] || 0)));
}
现在你的功能可以是:
function getMinutesBetweenDates(startDate) {
return ((new Date() - parseISOutc(startDate)) / 6e4 | 0) + ' minutes ago';
}
索引参数未使用,所以我删除了它。
试试这个,
您必须将startDate
转换为Date
对象,即使它是Date
对象的JSON格式。原因是,当进行减法运算时,会调用并减去Date
对象的valueOf
方法。valueOf
方法的返回值在Date
对象和JSON
字符串中不同。
function getMinutesBetweenDates(startDate) {
var endDate = new Date();
var startDate = new Date(startDate);
document.write(startDate.valueOf());
var diff = endDate - startDate;
return (diff / 60000);
}
document.write(getMinutesBetweenDates("2015-02-05T03:11:33.301Z"));
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 组合两个javascript函数
- 如何使用offer/answer交换来自两个对等连接的流
- jsf中两个字符串的颜色代码差异
- 加载两个具有相同父密钥名称的json文件
- 在Qualtrics中,介绍如何动态连接两个滑块
- 访问$.ajax()函数中的两个不同数组
- 如何在three.js上添加两个向量
- 如何在datetimepicker中使用两个验证器
- 如何在javascript中获取两个日期之间的周六和周日的日期
- 如何在javascript中获得两个原始日期之间的分钟差
- 两个函数使用相同的变量,都不会覆盖其原始变量
- paper.js:获取两个层/组的原始像素数据