【发布时间】:2016-05-08 04:58:11
【问题描述】:
我有一个存储在变量seconds 中的秒数。例如,我想将 1439 秒转换为 23 分 59 秒。如果时间大于 1 小时(例如 9432 秒),则为 2 小时 37 分 12 秒。
我怎样才能做到这一点?
我在想:
var sec, min, hour;
if(seconds<3600){
var a = Math.floor(seconds/60); //minutes
var b = seconds%60; //seconds
if (b!=1){
sec = "seconds";
}else{
sec = "second";
}
if(a!=1){
min = "minutes";
}else{
min = "minute";
}
$('span').text("You have played "+a+" "+min+" and "+b+" "+sec+".");
}else{
var a = Math.floor(seconds/3600); //hours
var x = seconds%3600;
var b = Math.floor(x/60); //minutes
var c = seconds%60; //seconds
if (c!=1){
sec = "seconds";
}else{
sec = "second";
}
if(b!=1){
min = "minutes";
}else{
min = "minute";
}
if(c!=1){
hour = "hours";
}else{
hour = "hour";
}
$('span').text("You have played "+a+" "+hour+", "+b+" "+min+" and "+c+" "+sec+".");
}
但这是很多代码,并且必须每秒计算一次。我怎样才能缩小这个?
【问题讨论】:
-
我在这里回答了这个问题:how to convert minutes to days,hours,minutes
-
@RomainHippeau 嗨!是的,我的代码有效,但它真的很大,我正在寻找一种方法来缩小它(:
-
你可以使用一些库,比如dateformat。
-
您是担心它很大还是很慢?如果是前者,您可以进行一些重构并使用缩小器;如果是后者,它真的不慢:担心每一秒都这样做就像担心你不应该把泡泡糖扔进垃圾桶,因为垃圾场可能会用完空间。
-
@Amadan 如果它不慢那就太好了!我想缩小它,因为它太大了,只是为了让它更紧凑,使用更少的空间,但我不想缩小它。我的速记真的很差,但我的目标是!
标签: javascript