JavaScript时间转换
我对JavaScript非常陌生。我猜答案很简单。JavaScript时间转换,javascript,timer,Javascript,Timer,我对JavaScript非常陌生。我猜答案很简单。 我需要将格式为hh:mm:ss的时间转换为秒。您可以这样做: var s = "1:01:01"; var a = s.split(":"); var sec = parseInt(a[0], 10)*60*60; sec += parseInt(a[1], 10)*60; sec += parseInt(a[2], 10); alert(sec); 试试这个 <SCRIPT LANGUAGE="JavaScript1.1"&g
我需要将格式为hh:mm:ss的时间转换为秒。您可以这样做:
var s = "1:01:01";
var a = s.split(":");
var sec = parseInt(a[0], 10)*60*60;
sec += parseInt(a[1], 10)*60;
sec += parseInt(a[2], 10);
alert(sec);
试试这个
<SCRIPT LANGUAGE="JavaScript1.1"><!--
function split(string,text) {
splitArray = string.split(text);
splitIndex = splitArray.length;
}
//--></SCRIPT>
<SCRIPT LANGUAGE="JavaScript"><!--
var splitIndex = 0;
var splitArray = new Array();
function calculateTime() {
splitIndex = 0;
split(document.myForm.myTime.value,':');
for (var i=splitIndex-1, j=1, answer=0; i>=0; i=i-1, j=j*60)
answer += splitArray[i]*j - 0;
document.myForm.mySeconds.value = answer;
}
//--></SCRIPT>
<FORM NAME="myForm">
<P>HH:MM:SS = <INPUT NAME="myTime" TYPE="TEXT" MAXLENGTH="8" LENGTH="10">
<P>Seconds = <INPUT NAME="mySeconds" TYPE="TEXT">
<P><INPUT TYPE="BUTTON" VALUE="Calculate" onClick="calculateTime()">
</FORM>
HH:MM:SS=
秒=
Big-gotcha:parseInt在传递一个包含前导零的字符串时可能会以意外的方式运行:parseInt(“09”)->0
和parseInt(“010”)->8
。这是因为带前导零的数字被视为八进制数字,所以对于情况1:八进制编号系统中没有9,对于情况2:八进制10对应于十进制8。当使用parseInt时,必须为十进制数指定基数10:parseInt(“09”,10)->9
和parseInt(“010”,10)->10
@Salman Good catch-我总是忘记这一点,直到得到完全出乎意料的结果。我对答案进行了编辑,将其包括在内。您是否使用任何库或纯JavaScript?如果您使用任何框架/库,则有可能存在转换日期/时间的功能。您也可以访问www.datejs.com/