gpt4 book ai didi

Javascript 原型(prototype)函数 : decimal time value to a time string

转载 作者:搜寻专家 更新时间:2023-11-01 04:18:40 27 4
gpt4 key购买 nike

在我目前正在使用 JavaScript 进行的项目中,我使用十进制格式,因此比使用字符串中的小时/分钟格式(日历相关项目)更容易计算。不过,要在用户屏幕上显示时间,时间码必须显示为 hh:mm。

我认为为此使用 String 原型(prototype)函数会很棒,因为它允许我使用如下代码:

var time = 8.75;
document.write("Meeting at "+time.toTime()); // writes: Meeting at 8:45

到目前为止,我几乎可以使用:

String.prototype.toTime = function(){
var hrs = this.toString().slice(0,this.indexOf("."));
var min = Math.round(this.toString().slice(this.indexOf("."))/100*60);
min = min<10 ? "0"+min : min.toString();
return hrs+":"+min;
}

但问题是,只有当变量 time 是一个字符串时,这才有效。否则会报未定义错误。

是否有任何方法可以将原型(prototype)应用于 JavaScript 中的不同对象,这样我就不必使用 time.toString().toTime()

谢谢!

最佳答案

首先,您可以添加到Number 原型(prototype)。许多人会警告不要修改原型(prototype),这在许多情况下是合理的。如果第 3 方脚本有可能与您的脚本一起运行,那么修改原型(prototype)是很危险的。

其次,我稍微简化了您的代码,使用模数和下限来计算小时和分钟...

Number.prototype.toTime = function(){
var hrs = Math.floor(this)
var min = Math.round(this%1*60)
min = min<10 ? "0"+min : min.toString();
return hrs+":"+min;
}

var time = 8.25;
console.log("Meeting at "+time.toTime());

关于Javascript 原型(prototype)函数 : decimal time value to a time string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978823/

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