如何将数字转换为时间?

wiu753

我正在尝试创建一个使用数字并使用date-fns版本1.30.1或纯JavaScript返回时间戳记(HH:mm)的函数。

我想要实现的是在输入时间时为用户提供帮助。当用户离开输入字段时,我正在使用Vue.js更新该字段。因此,如果用户键入21然后离开,则该字段理想情况下将更新为21:00。

一些示例是:

21 = 21:00  
1 = 01:00  
24 = 00:00  
2115 = 21:15  

像815这样的数字不必返回08:15。像7889这样的数字应返回错误。

我试过使用正则表达式:

time = time
    .replace(/^([1-9])$/, '0$1')
    .replace(/^([0-9]{2})([0-9]+)$/, '$1:$2')
    .replace(/^24/, '00:00')

我也尝试在date-fns中使用parse方法,但似乎无法解决这个问题。

Tevemadar

基于<100(仅小时)和>=100(100 *小时+分钟)的转换,加上一些24和单位数的数字(小时和分钟)的换算

function num2time(num){
  var h,m="00";
  if(num<100)
    h=num;
  else {
    h=Math.floor(num/100);
    m=("0"+(num%100)).slice(-2);
  }
  h=h%24;
  return ("0"+h).slice(-2)+":"+m;
}

console.log(num2time(8));
console.log(num2time(801));
console.log(num2time(24));
console.log(num2time(2401));
console.log(num2time(2115));
console.log(num2time("8"));
console.log(num2time("2115"));

原始答案,仅保留用于评论,但不能 24 正确处理 或只用一位数表示分钟:

例如,您可以进行非常机械的转换

function num2time(num){
  if(num<10)
    t="0"+num+":00";
  else if(num<100)
    t=num+":00";
  else {
    if(num<1000)
      t="0"+Math.floor(num/100);
    else if(num<2400)
      t=Math.floor(num/100)
    else
      t="00";
    t+=":"+(num%100);
  }
  return t;
}

console.log(num2time(8));
console.log(num2time(2115));
console.log(num2time("8"));
console.log(num2time("2115"));

验证示例:

function num2time(num){
  var h,m="00";
  if(num<100)
    h=num;
  else {
    h=Math.floor(num/100);
    m=("0"+(num%100)).slice(-2);
  }
  if(h<0 || h>24) throw "Hour must be between 0 and 24"
  if(m<0 || m>59) throw "Minute must be between 0 and 59"
  h=h%24;
  return ("0"+h).slice(-2)+":"+m;
}

var numstr=prompt("Enter time code");
while(true) {
  try {
    console.log(num2time(numstr));
    break;
  } catch(ex) {
    numstr=prompt("Enter time code, "+numstr+" is not valid\n"+ex);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将日期时间转换为时间格式

来自分类Dev

如何将数字(以秒为单位)转换为时间格式?

来自分类Dev

在R中,如何将数字7.00转换为时间7:00:00?

来自分类Dev

如何将数据帧转换为时间序列?

来自分类Dev

如何将DateTime转换为时间

来自分类Dev

如何将整数转换为时间格式

来自分类Dev

如何将整数列转换为时间列?

来自分类Dev

将数字转换为时间

来自分类Dev

如何将时间转换为数字?

来自分类Dev

如何将日期和时间转换为时间戳

来自分类Dev

如何将月年时间字符串转换为时间?

来自分类Dev

如何将时间字符串转换为时间戳

来自分类Dev

如何将日期时间转换为时间戳记纪元

来自分类Dev

如何将今天的日期时间转换为时间戳

来自分类Dev

如何将包含时区的时间戳 varchar 转换为时间戳类型

来自分类Dev

将数字转换为时间格式 HH:mm:ss

来自分类Dev

如何正常将数字转换为时间格式?

来自分类Dev

如何在python中将数字转换为时间?

来自分类Dev

如何将字母月份的日期转换为时间戳

来自分类Dev

如何将Mongoid _id转换为时间戳(Rails)

来自分类Dev

如何将简单的24小时制转换为时间戳

来自分类Dev

如何将Int转换为时间(MM:SS.mm)swift

来自分类Dev

SAS当从CSV加载数据时,如何将字符串转换为时间?

来自分类Dev

如何将多个日期格式的字符串转换为时区格式的时间戳

来自分类Dev

如何将hh:mm的列字符串转换为时间格式

来自分类Dev

如何将YYYYMMDDHHMMSS格式的日期转换为时期或Unix时间?

来自分类Dev

Bash:如何将文件的修改时间转换为时代?

来自分类Dev

如何将电子表格单元格转换为时间单位?

来自分类Dev

当值具有不同格式时如何将变量转换为时间格式

Related 相关文章

  1. 1

    如何将日期时间转换为时间格式

  2. 2

    如何将数字(以秒为单位)转换为时间格式?

  3. 3

    在R中,如何将数字7.00转换为时间7:00:00?

  4. 4

    如何将数据帧转换为时间序列?

  5. 5

    如何将DateTime转换为时间

  6. 6

    如何将整数转换为时间格式

  7. 7

    如何将整数列转换为时间列?

  8. 8

    将数字转换为时间

  9. 9

    如何将时间转换为数字?

  10. 10

    如何将日期和时间转换为时间戳

  11. 11

    如何将月年时间字符串转换为时间?

  12. 12

    如何将时间字符串转换为时间戳

  13. 13

    如何将日期时间转换为时间戳记纪元

  14. 14

    如何将今天的日期时间转换为时间戳

  15. 15

    如何将包含时区的时间戳 varchar 转换为时间戳类型

  16. 16

    将数字转换为时间格式 HH:mm:ss

  17. 17

    如何正常将数字转换为时间格式?

  18. 18

    如何在python中将数字转换为时间?

  19. 19

    如何将字母月份的日期转换为时间戳

  20. 20

    如何将Mongoid _id转换为时间戳(Rails)

  21. 21

    如何将简单的24小时制转换为时间戳

  22. 22

    如何将Int转换为时间(MM:SS.mm)swift

  23. 23

    SAS当从CSV加载数据时,如何将字符串转换为时间?

  24. 24

    如何将多个日期格式的字符串转换为时区格式的时间戳

  25. 25

    如何将hh:mm的列字符串转换为时间格式

  26. 26

    如何将YYYYMMDDHHMMSS格式的日期转换为时期或Unix时间?

  27. 27

    Bash:如何将文件的修改时间转换为时代?

  28. 28

    如何将电子表格单元格转换为时间单位?

  29. 29

    当值具有不同格式时如何将变量转换为时间格式

热门标签

归档