gpt4 book ai didi

javascript - 获取当前时间 javascript + 1 小时(分钟错误)

转载 作者:行者123 更新时间:2023-11-30 07:51:59 24 4
gpt4 key购买 nike

您好,我目前正在运行一个显示当前时间 + 1 小时的脚本,我遇到的问题是,在前 9 分钟的每个小时,0 都没有出现*,而且我无法找到解决方案。

*示例:上午 9:1 而不是上午 9:01

我喜欢 Moments.js 但在这种情况下我不能使用外部库

var now = new Date;
now.setHours(now.getHours() + 1);
var isPM = now.getHours() >= 12,
isMidday = 12 == now.getHours(),
result = document.querySelector("#result"),
time = [now.getHours() - (isPM && !isMidday ? 12 : 0), now.getMinutes() || "00"].join(":") + (isPM ? " pm" : "am");

function addTime(t) {
for (var s in t) {
var e = s.substr(0, 1).toUpperCase() + s.substr(1);
this["set" + e](this["get" + e]() + t[s])
}
return this
}

function showTime(t) {
var s = function() {
return this < 10 ? "0" + this : this
};
if (t) return [s.call(this.getHours()), s.call(this.getMinutes()), s.call(this.getSeconds())].join(":");
var e = this.getHours() >= 12,
i = 12 == this.getHours();
return time = [s.call(this.getHours() - (e && !i ? 12 : 0)), s.call(this.getMinutes()), s.call(this.getSeconds())].join(":") + (e ? " pm" : " am")
}
result.innerHTML = time;
<script>
var today=new Date,dd=today.getDate(),mm=today.getMonth()+1,yyyy=today.getFullYear().toString().substr(-2);dd<10&&(dd="0"+dd),mm<10&&(mm="0"+mm),today=mm+"/"+dd+"/"+yyyy,document.write(today);
</script>

<span id="result"></span>

最佳答案

看起来你的很多代码实际上并没有被调用,看起来只有影响输出的行是这些:

var now = new Date;
now.setHours(now.getHours() + 1);
var isPM = now.getHours() >= 12, isMidday = 12 == now.getHours(), result = document.querySelector("#result"),
time = [now.getHours() - (isPM && !isMidday ? 12 : 0), now.getMinutes() || "00"].join(":") + (isPM ? " pm" : "am");
result.innerHTML = time;

最相关的 block 是:

now.getMinutes() || "00"

您在示例中得到未填充分钟的原因是因为您仅在 now.getMinutes() 恰好为 0 时处理,跳过 1-9 的情况。为了解决这个问题,您可以简单地改为这样做:

(now.getMinutes() < 10) ? "0" + now.getMinutes() : "" + now.getMinutes()

正如其他人所暗示的,正确格式化日期和进行日期算术可以是 pretty tricky特别是如果您要处理时区和不同语言环境之类的事情。使用类似 Moment.js 的库真是个好主意。

关于javascript - 获取当前时间 javascript + 1 小时(分钟错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51064779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com