关于时间选择器的问题,类似酒店入住时间选择,但要自动填充时间?

现在就是想实现一个功能,当用户选择一个日期的时候,可以自动选择当前日期所在的周日期,比如当我选择13号的话,会自动选择11号到17号这个时间段;目前试了几个控件都不支持啊,想了几个思路:当选择日期的时候触发事件,获取选中的值,判断选中的是周几,然后把开始时间 至为选中的值减去周几,结束时间为选中的值加上本周的剩余时间;

图片描述

阅读 3.5k
2 个回答

你不就是想选择一个时间段吗?
看你问题的描述我都看懵逼了要

// 本周第一天
function showWeekFirstDay()     
{     
    var Nowdate=new Date();     
    var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);     
    M=Number(WeekFirstDay.getMonth())+1     
    return WeekFirstDay.getYear()+"-"+M+"-"+WeekFirstDay.getDate();     
}

// 本周最后天
function showWeekLastDay()     
{     
    var Nowdate=new Date();     
    var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);     
    var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);     
    M=Number(WeekLastDay.getMonth())+1     
    return WeekLastDay.getYear()+"-"+M+"-"+WeekLastDay.getDate();     
}

http://www.cnblogs.com/KingUp...

现在基本做的差不多了,但是楼上给的方法在遇到跨年的时候就发生了问题,如图:当我选择2017/01/01(周日)的时候,发现返回的结果是2017/01/02(周一);
图片描述

找个问题是由于getDay()在获取到周日的时候值为0,导致weekFirstDay会增加一天,我的做法是做了一个判断,这样可能更符合中国人的习惯:

function showWeekFirstDay(time)
    {
        var Nowdate=new Date(time);
        var WeekFirstDay;
        if(Nowdate.getDay()===0){
            WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()+6)*86400000);
        } else {
            WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
        }
        M=Number(WeekFirstDay.getMonth())+1;
        wf_year =WeekFirstDay.getFullYear();//获取本周第一天所在年
        wf_month = M;//获取本周第一天所在月
        wf_day = WeekFirstDay.getDate();//获取本周第一天所在日
        return wf_year,wf_month,wf_day;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏