Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带条件的JavaScript转换_Javascript - Fatal编程技术网

带条件的JavaScript转换

带条件的JavaScript转换,javascript,Javascript,我有这个代码来将输入时间转换为秒 $(function() { $('form').on('keyup', '#quizTime', function(e){ var hms = $('#quizTime').val(); var a = hms.split(':'); var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); console.log(seconds)

我有这个代码来将输入时间转换为秒

$(function() {
    $('form').on('keyup', '#quizTime', function(e){
        var hms = $('#quizTime').val();
        var a = hms.split(':');
        var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
        console.log(seconds);
    });
});
此代码的问题是,它需要输入
00:05:30
才能工作,如果我只输入小步舞曲,则不会接受,而
05:30
将返回
NAN

我试图找到的是一个解决方案,它既接受输入条件
hh:mm:ss
,也接受
mm:ss


如何更改此代码以实现该目标?

如果不存在,则将小时数默认为
0

$(function() {
    $('form').on('keyup', '#quizTime', function(e){
        var hms = $('#quizTime').val();
        var a = hms.split(':');
        if(a.length !== 3) {
           a.unshift(0)
        }
        var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
        console.log(seconds);
    });
});

检查
a
的长度

$(function() {
    $('form').on('keyup', '#quizTime', function(e){
        var hms = $('#quizTime').val();
        var a = hms.split(':');
        var seconds;
        if (a.length == 3) { // hh:mm:ss
            seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
        } else if (a.length == 2) { // mm:ss
            seconds = (+a[0]) * 60 + (+a[1]);
        } else if (a.length == 1) { // ss
            seconds = +a[0];
        } else {
            alert("That's not a valid time: " + hms);
        }
        console.log(seconds);
    });
});

如果,则使用
添加更多条件。