JavaScript计算到datetime之间的秒数差异

时间:2016-04-21 10:34:20

标签: javascript

我是JavaScript的新手并且已经做了一些研究,但是我找不到相对简单问题的直接解决方案。我有以下var:

 @Override
    public void bindViewHolder(ViewHolder holder, int position) {
        if(position == separatorPosition){
           holder.separatorView.visible = View.VISIBLE;
        }else{
           holder.separatorView.visible = View.GONE;
        }
    }

我需要在几秒钟内获得现在和var recordDate = '2016-04-20 17:52:33'; 之间的差异。实现它的最有效方法是什么?

2 个答案:

答案 0 :(得分:2)

尝试首先将recordDate转换为日期对象

var match = recordDate.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/);
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6]);
var currentDate = new Date();

var differenceInSeconds = Math.abs(date.getTime() - currentDate.getTime())/1000;

<强>样本

&#13;
&#13;
var recordDate = '2016-04-20 17:52:33';
var match = recordDate.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/);
var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6]);
alert(date.toString());
var currentDate = new Date();

var differenceInSeconds = Math.abs(date.getTime() - currentDate.getTime())/1000;
alert(differenceInSeconds);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

设置日期记录如下:

var recordDate = new Date('2016-04-20 17:52:33');
var currentTime = new Date();

然后像这样计算:

(currentTime - recordDate) / 1000 = {Seconds in between}

其他评论:

我没有使用abs的其他原因是因为看起来它的目的就像在stackoverflow中显示的那样 - edited 5 seconds ago或类似的,当currentTime永远不会少于记录日期,因此减少一次计算和依赖。