javascript - 如何切割这个数组?
大家讲道理
大家讲道理 2017-04-11 12:45:32
[JavaScript讨论组]
        var curhour = new Date().getHours();
        var hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00']

一个预约服务的需求,怎么比较如何返回当前时间(12点)两个小时以后的数组,接受预约服务的营业时间为8-19点;

['14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00']

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
ringa_lee
        var curhour = new Date().getHours();
        var hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00'];
        var resultHourList;
        var foundIndex=hourList.findIndex(function(item){
            var start=parseInt(item.split("-")[0].split(":")[0],10);
            if(start===curhour){
                return true;
            }else{
                return false;
            }
        });
        
        if(foundIndex!=-1){
            resultHourList=hourList.splice(foundIndex);
        }
        
        console.log(resultHourList);

或者

        var curhour = new Date().getHours();
        var hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00'];
        var resultHourList;
        var firstHour=parseInt(hourList[0].split("-")[0].split(":")[0],10);
        var offset=curhour-firstHour;
        resultHourList=hourList.splice(offset);
        console.log(resultHourList);
大家讲道理
var curhour = new Date().getHours();
var hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00', '19:00-20:00'];
hourList=hourList.filter(function(item, i) {
    return +item.slice(0, 2) > curhour
})
伊谢尔伦
        $hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00'];
        foreach ($hourList as $list) {
            $start_hour = explode(":", $list);
            if($start_hour[0] >= "14") {
                var_dump($list);
            }
        }
        
迷茫

能用es6么?
如果用es6的写法。

    var curhour = new Date().getHours();
    var hourList = ['8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00','19:00-20:00']
    hourList.filter((time)=>{
        let timeRange= time.split('-');
        return timeRange[0].split(':')[0]*1>(curhour+2)
   })
        

不能的话 你就吧filter换成for 或while 或者 forEach

大家讲道理

我也写了一个。要是有哪里不好,请指正。

var isLegitimacy = function(now){
        
        return function(item){
        
            var beginTimeStr = item.split("-")[0];
            var beginTimeNum = parseInt(beginTimeStr,10);

            return ((beginTimeNum >= now+2) && (beginTimeNum < 20)) ? true : false;
        };
    };

var filterFn = function(hourList,isLegitimacy){
        return hourList.filter(isLegitimacy);
    }; 

最后调用

filterFn(hourList,isLegitimacy(curhour));
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号