Javascript 整数到时间字符串

标签 javascript time

我做了这个测试:

Implement an function toReadableString(int) that takes an integer that represents number of seconds
from 00:00:00 and returns a printable string format with AM / PM notation.
For ex.
01:00:00 = 3600
07:00:00 = 25200
toReadableString(3600) should return "1:00AM"
toReadableString(25200) should return "7:00AM"

我的解决方案是:

function padZero(string){
  return ("00" + string).slice(-2);
}
function toReadableString(time) {
  var hrs = ~~(time / 3600 % 24),
      mins = ~~((time % 3600) / 60),
      timeType = (hrs>11?"PM":"AM");
  return hrs + ":" + padZero(mins) + timeType;
}

但是大多数测试用例都失败了。测试用例是隐藏的,所以我不知道为什么我测试失败了。我已经尝试了我能想到的大部分测试用例。你知道我的解决方案有什么问题吗?

最佳答案

您的工作时间在 0 到 24 之间(其中 0 到 24 实际上是 12:00AM)

function toReadableString(time) {
  if (time < 0)
    time = 0;
  var hrs = ~~(time / 3600 % 24),
    mins = ~~((time % 3600) / 60),
    timeType = (hrs > 11 ? "PM" : "AM");
  if (hrs > 12)
    hrs = hrs - 12;
  if (hrs == 0)
    hrs = 12;
  return hrs + ":" + padZero(mins) + timeType;
}

关于Javascript 整数到时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45206624/

相关文章:

javascript - 这个对象合并功能可能会出现哪些错误?

javascript - 保存用户登录的时间

c++ - 随机通话的时间复杂度

javascript - 将这些时间参数转换为纪元时间

javascript - 如何在 JS 中将大字符串(不是数字)格式化为货币?

javascript - 尝试映射 Yelp API 响应

javascript - 如何将带有上下文菜单的展开所有按钮添加到 d3.js 树中

ios - Swift 中 Double 的拆分和组合

javascript - Moment.Js : Offsetting dates using UTC and Timezone offset

javascript - 为什么我的 Mocha Reporter 会重复报告测试?