vue中的时间做比较

vue中,时间是这种格式12:55。只有小时和分钟,这种格式的时间怎么做比较?判断谁大谁小


function compareTime(time1, time2) {
  const [hour1, minute1] = time1.split(':');
  const [hour2, minute2] = time2.split(':');
  const totalMinutes1 = Number(hour1) * 60 + Number(minute1);
  const totalMinutes2 = Number(hour2) * 60 + Number(minute2);
  if (totalMinutes1 > totalMinutes2) {
    return 1;
  } else if (totalMinutes1 < totalMinutes2) {
    return -1;
  } else {
    return 0;
  }
}
// 示例使用 返回值为1、-1或0,分别表示第一个时间大于、小于或等于第二个时间。
console.log(compareTime('12:55', '13:30')); // -1
console.log(compareTime('14:20', '12:45')); // 1
console.log(compareTime('9:00', '9:00')); // 0

小魔女参考了bing和GPT部分内容调写:
在Vue中,可以使用JavaScript的Date对象来对时间进行比较。首先,我们需要将格式为12:55的时间转换为Date对象,可以使用new Date()方法,传入一个字符串参数,格式为'hh:mm',如:

let time1 = new Date('12:55');
let time2 = new Date('13:00');

接下来,我们可以使用getTime()方法来获取时间的毫秒数,然后进行比较:

let time1_ms = time1.getTime();
let time2_ms = time2.getTime();

if (time1_ms > time2_ms) {
  console.log('time1大于time2');
} else if (time1_ms < time2_ms) {
  console.log('time1小于time2');
} else {
  console.log('time1等于time2');
}

另外,也可以使用getHours()和getMinutes()方法来获取时间的小时和分钟,然后进行比较:

let time1_hour = time1.getHours();
let time1_minute = time1.getMinutes();
let time2_hour = time2.getHours();
let time2_minute = time2.getMinutes();

if (time1_hour > time2_hour) {
  console.log('time1大于time2');
} else if (time1_hour < time2_hour) {
  console.log('time1小于time2');
} else {
  if (time1_minute > time2_minute) {
    console.log('time1大于time2');
  } else if (time1_minute < time2_minute) {
    console.log('time1小于time2');
  } else {
    console.log('time1等于time2');
  }
}

总之,在Vue中,可以使用JavaScript的Date对象来对时间进行比较,可以使用getTime()方法来获取时间的毫秒数,也可以使用getHours()和getMinutes()方法来获取时间的小时和分钟,然后进行比较。
回答不易,记得采纳呀。

可以在前面任意拼一个日期,然后用moment.js 时间日期处理库,一步搞定,截图如下

img


后面的秒去掉也可以。

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Vue时间比较

day.js\moment.js 不过现在用前者的多 。不想引入库的话,就用js 的方法,转换毫秒数比较 。如果你项目里 很多日期 处理 ,建议引入一个库 。
https://dayjs.fenxianglu.cn/category/#node-js