Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs中的时差?_Node.js - Fatal编程技术网

Node.js Nodejs中的时差?

Node.js Nodejs中的时差?,node.js,Node.js,我想找出一种方法,以秒为单位计算两个日期之间的时差 例如,以下各项之间的秒差: 2013-5-11 8:37:18 2013-5-11 10:37:18 尝试: function timeDifference(laterdate, earlierdate) { var difference = laterdate.getTime() - earlierdate.getTime(); var daysDifference = Math.floor(difference/1000

我想找出一种方法,以秒为单位计算两个日期之间的时差

例如,以下各项之间的秒差:

2013-5-11 8:37:18

2013-5-11 10:37:18
尝试:

function timeDifference(laterdate, earlierdate) {
    var difference = laterdate.getTime() - earlierdate.getTime();
    var daysDifference = Math.floor(difference/1000/60/60/24);
    difference -= daysDifference*1000*60*60*24
    var hoursDifference = Math.floor(difference/1000/60/60);
    difference -= hoursDifference*1000*60*60
    var minutesDifference = Math.floor(difference/1000/60);
    difference -= minutesDifference*1000*60
    var secondsDifference = Math.floor(difference/1000);

    return secondsDifference;
}
但这在Nodejs中不起作用,错误是

getTime()

找不到函数

var moment = require('moment')
var startDate = moment('2013-5-11 8:73:18', 'YYYY-M-DD HH:mm:ss')
var endDate = moment('2013-5-11 10:73:18', 'YYYY-M-DD HH:mm:ss')
var secondsDiff = endDate.diff(startDate, 'seconds')
console.log(secondsDiff)
你需要这个模块


timezonecomplete模块支持日期差异,即使日期位于不同的时区。它返回一个单位感知的Duration对象,而不仅仅是表示“毫秒”的“数字”:


获取剩余天数:

var moment = require('moment');

var startDate = moment(new Date()).format("YYYY-MM-DD");

var endDate = moment(new Date("Tue Aug 27 2015 09:13:40 GMT+0530 (IST)")).format("YYYY-MM-DD");

var remainingDate = moment(endDate).diff(startDate, 'days');

console.log(remainingDate) // at time of posting, 106 days

我们也可以使用这个优化代码

function calculateDays(startDate,endDate)
{
   var start_date = moment(startDate, 'YYYY-MM-DD HH:mm:ss');
   var end_date = moment(endDate, 'YYYY-MM-DD HH:mm:ss');
   var duration = moment.duration(end_date.diff(start_date));
   var days = duration.asDays();       
   return days;
}

在这里,您需要安装
moment
,并希望在使用前导入。

它将检查系统时间并找出差异

var moment = require('moment')
var firstTime = moment();

setInterval(someTask,1000);
function someTask(){
  var secondTime = moment();
  var timeDifference = secondTime.diff(firstTime, 'seconds')
  console.log(timeDifference)
}`


如果您只想像我一样设置循环超时,那么根本不需要使用momentjs。尝试以下方法

let timeout=3//秒
log(“开始:+newdate());
让开始=编号(Date.now());
让结束=开始+超时*1000;
while(Number(Date.now())日志(“结束:+newdate())传递给函数的是什么?字符串还是日期对象?我传递字符串
npm安装时刻
->
时刻(laterdate).diff(earlierdate,'days')
使用时刻(),它将改变你的生活。“两个日期之间的秒数”“我传递字符串”。嗯,什么?我想你需要添加var secondsDiff=moment(endDate).diff(startDate,'seconds')
endDate.diff不是一个函数
我想你需要安装'moment',这似乎不再是一个有效的答案:
弃用警告:提供的值不是公认的RFC2822或ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。请参阅http://momentjs.com/guides/#/warnings/js-日期/获取更多信息。
我打赌这在很长一段时间内都是一个很好的答案,但现在我们不愿意走这条路。还有别的事吗?我应该重新问这个问题吗?这似乎是一个更好的方法:也不会给出反对警告
var minutesDiff=时刻(receivedTimeStamp,'HH:mm a')。fromNow()
function calculateDays(startDate,endDate)
{
   var start_date = moment(startDate, 'YYYY-MM-DD HH:mm:ss');
   var end_date = moment(endDate, 'YYYY-MM-DD HH:mm:ss');
   var duration = moment.duration(end_date.diff(start_date));
   var days = duration.asDays();       
   return days;
}
var moment = require('moment')
var firstTime = moment();

setInterval(someTask,1000);
function someTask(){
  var secondTime = moment();
  var timeDifference = secondTime.diff(firstTime, 'seconds')
  console.log(timeDifference)
}`
const MOMENT = require('moment');

const TimeDiff = ( startTime, endTime, format ) => {

    startTime = MOMENT( startTime, 'YYYY-MM-DD HH:mm:ss' );
    endTime = MOMENT( endTime, 'YYYY-MM-DD HH:mm:ss' );
    return endTime.diff( startTime, format);
}

let startTime = new Date('2013-5-11 8:37:18');
let endTime = new Date('2013-5-11 10:37:18');

console.log( TimeDiff(startTime, endTime, 'seconds'));