日期和字符串时间之间的分钟数

时间:2016-06-02 17:57:10

标签: javascript momentjs

我有一个以字符串形式给出的开始时间。

let opens = '08:00';

我想测量不同日期的分钟差异。

let date1 = moment('1945.10.20 17:30');
let date2 = moment('1970.01.08 12:00');
// should result 570 (9.5h) and 240 (4h)

我天真地尝试

moment(opens, 'HH:mm').diff(date1, 'm');

但我意识到它会为当天的时间安排一个日期。

3 个答案:

答案 0 :(得分:2)

在同一天获取片刻物品,但需要时间。从那里做比较。如果您知道打开的格式始终为HH:mm,那么您可以执行此操作:

let opens = '08:00';
let opensTime = moment(opens, 'HH:mm');
let date1 = moment('1945.10.20 17:30', 'YYYY.MM.DD HH:mm');
let openDate1 = date1.clone().set({
    hour: opensTime.hour(),
    minute: opensTime.minute()
});

然后比较:

date1.diff(openDate1, 'm') === 570;

或者,您可以在opens - opens.split(":")上进行拆分 - 获取小时和分钟。

答案 1 :(得分:0)

如果我正确阅读此内容,您希望将日期对象的小时数与上午8点进行比较。

Javascript从日期对象中获取getHours()和getMinutes()。

Hence you can do date.getHours() - 8, and date1.getMinutes()

答案 2 :(得分:0)

您可以修改opens变量吗?



let date1 = moment(new Date('1945.10.20 17:30'));
let date2 = moment(new Date('1970.01.08 12:00'));

function timeDifference(end, opensHour, opensMinute) {
  var start = end.clone().set({
    "hour": opensHour,
    "minute": opensMinute
  });

  return {
    "start": start,
    "end": end,
    "difference": end.diff(start, "minutes")
  };
}

console.log(timeDifference(date1, 8, 0));
console.log(timeDifference(date2, 8, 0));

<script src="http://momentjs.com/downloads/moment.js"></script>
&#13;
&#13;
&#13;

基本上你需要做的是,一旦你有结束日期,创建一个新的时刻,但是你的opens开始时间相同。然后做差异。

或者,你也可以减去:

&#13;
&#13;
let opens = "08:00";
let date1 = moment(new Date('1945.10.20 17:30'));
let date2 = moment(new Date('1970.01.08 12:00'));

function timeDifference(opens, end) {
  // get the start
  var start = moment(opens, "HH:mm");
  
  // find how many minutes from midnight the start is
  var startFromMidnight = start.diff(start.clone().startOf("day"), "minutes");
  
  // find how many minutes from midnight the end is
  var endFromMidnight = end.diff(end.clone().startOf("day"), "minutes");
  
  // subtract the two to find the difference
  return endFromMidnight - startFromMidnight;
}

console.log(timeDifference("08:00", date1));
console.log(timeDifference("08:00", date2));
&#13;
<script src="http://momentjs.com/downloads/moment.js"></script>
&#13;
&#13;
&#13;