首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要在jquery中找到一个人醒来时间和睡眠时间之间的所有时间。

需要在jquery中找到一个人醒来时间和睡眠时间之间的所有时间。
EN

Stack Overflow用户
提问于 2016-11-10 06:52:00
回答 3查看 52关注 0票数 0

我有wakeup_time和sleep_time

wakeup_time=09:00下午11:00和sleep_time=

我需要找到所有的时间(12H格式)之间的这两次。

醒来和睡觉的时间会变的不一样。

预期结果:晚上九时、十时、下午十二时、凌晨一时、......,10上午十一时

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-14 08:02:06

又一个。尝尝这个。

代码语言:javascript
复制
var id=0;
        var unit=wakeup_unit;
        var time;
        for(var i=0;i<=totalHours;i++){
        id=wakeup_time+i;

        if(id>=12){
            if(id==12){
                    time=id;
                    if(wakeup_time==12){

                    }else{
                        if(unit=="am"){
                            unit="pm";
                        }else if(unit=="pm"){
                            unit="am";
                        }else{
                            unit=unit;
                        }
                    }

                }else{
                    time=id-12;
                    if(time>=12){
                        if(time==12){
                            if(wakeup_time==12){

                    }else{
                        if(unit=="am"){
                        unit="pm";
                    }else if(unit=="pm"){
                        unit="am";
                    }else{
                        unit=unit;
                    }
                    }
                        }else{
                            time=time-12;
                        }
                    }

            }

        }else{
            time=id;
        }
        console.log(time +" "+ unit);


      if ((wakeup_unit == "am") && (sleep_unit == "pm")) {
                        if (wakeup_time == 12 && sleep_time != 12) {
                            var totalHours = (sleep_time + 12);
                        } else if(wakeup_time != 12 && sleep_time == 12){
                        var totalHours = (sleep_time -wakeup_time);
                        }else if (wakeup_time == 12 && sleep_time == 12) {
                            var totalHours = 12;
                        } else {
                            var totalHours = (sleep_time > wakeup_time) ? ((sleep_time + 12) - wakeup_time) : ((sleep_time + 12) - wakeup_time);
                        }
                    } else if ((wakeup_unit == "pm") && (sleep_unit == "am")) {
                        if (wakeup_time == 12 && sleep_time != 12) {
                            var totalHours = sleep_time + 12;
                        } else if (wakeup_time != 12 && sleep_time == 12) {
                            var totalHours = sleep_time - wakeup_time;
                        } else if (wakeup_time == 12 && sleep_time == 12) {
                            var totalHours = 12;
                        } else {
                            var totalHours = (sleep_time > wakeup_time) ? 24 - ((wakeup_time + 12) - sleep_time) : 24 - ((wakeup_time + 12) - sleep_time);
                        }
                    } else if ((wakeup_unit == "am") && (sleep_unit == "am")) {
                        if (wakeup_time == 12 && sleep_time == 12) {
                            var totalHours = 0;
                        }else if (wakeup_time == 12 && sleep_time != 12) {
                            var totalHours = sleep_time;
                        }else if (wakeup_time != 12 && sleep_time == 12) {
                            var totalHours = sleep_time+wakeup_time;
                        }else {
                            var totalHours = (sleep_time > wakeup_time) ? (sleep_time - wakeup_time) : 24 - (wakeup_time - sleep_time);
                        }

                    } else if ((wakeup_unit == "pm") && (sleep_unit == "pm")) {
                        if (wakeup_time == 12 && sleep_time == 12) {
                            var totalHours = 0;
                        }else if (wakeup_time == 12 && sleep_time != 12) {
                            var totalHours = sleep_time;
                        }else if (wakeup_time != 12 && sleep_time == 12) {
                            var totalHours = sleep_time+wakeup_time;
                        } else {
                            var totalHours = (sleep_time > wakeup_time) ? (sleep_time - wakeup_time) : 24 - (wakeup_time - sleep_time);
                        }

                    } else {
                        console.log("This should not come at all");
                    }
票数 1
EN

Stack Overflow用户

发布于 2016-11-10 07:27:38

因此,将您的时间转换为24小时,然后减去它,您发现它的转换为24小时,请参见下面的代码:

代码语言:javascript
复制
function convertTo24Hour(time) {

var hours = parseInt(time.substr(0, 2));
var mins = parseInt(time.substr(3, 2));
var strMins = "";
if (mins.length == 1)
    strMins = "0" + mins;
else strMins = mins;
if (time.indexOf('am') >= 0 && hours <= 12) {
    if (hours == 12) {
        time = time.replace('12', '0');
    } else
        time = hours + ":" + strMins;
}
if (time.indexOf('pm') >= 0 && hours <= 12) {
    if (hours == 12) {
        time = hours + ":" + strMins;
    } else
        time = (hours + 12) + ":" + strMins;
}
return time.replace(/(am|pm)/, '').trim();

}

票数 0
EN

Stack Overflow用户

发布于 2016-11-11 12:13:51

尝试这个answer.its取决于上午,下午计算它的工作对我来说很好。

代码语言:javascript
复制
                    var wakeup_unit = wakeup.slice(-2);
                    var sleep_unit = sleep.slice(-2);
                    var wakeup_time = parseInt(wakeup.split(':')[0], 10);
                    var sleep_time = parseInt(sleep.split(':')[0], 10);

                    if ( (wakeup_unit == "am") && (sleep_unit == "pm")) {
                        var totalHours = (sleep_time > wakeup_time) ? ((sleep_time + 12) - wakeup_time) : ((sleep_time + 12) - wakeup_time);
                    } else if ((wakeup_unit == "pm") && (sleep_unit == "am")) {
                    var totalHours = (sleep_time > wakeup_time) ? 24-((wakeup_time + 12) - sleep_time) : 24-((wakeup_time+12) - sleep_time);
                    } else if ((wakeup_unit == "am") && (sleep_unit == "am")) {
                    var totalHours = (sleep_time > wakeup_time) ? (sleep_time  - wakeup_time) : 24-(wakeup_time - sleep_time);
                    } else if ((wakeup_unit == "pm") && (sleep_unit == "pm")) {
                    var totalHours = (sleep_time > wakeup_time) ? (sleep_time  - wakeup_time) : 24-(wakeup_time - sleep_time);
                    }else {
                        console.log("This should not come at all");
                    }



        var id=0;
        var unit=wakeup_unit;
        var time;
        for(var i=0;i<=totalHours;i++){
        id=wakeup_time+i;

        if(id>=12){
        if(id==12){
            time=id;
            if(unit=="am"){
                unit="pm";
            }else if(unit=="pm"){
                unit="am";
            }else{
                unit=unit;
            }
        }else{
            time=id-12;
            if(time>=12){

                if(time==12){

            if(unit=="am"){
                unit="pm";
            }else if(unit=="pm"){
                unit="am";
            }else{
                unit=unit;
            }
        }else{
        time=time-12;    
        }
            }

        }

        }else{
        time=id;
        }
        console.log(time +" "+ unit);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40521545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档