cha*_*tej 6 javascript jquery date datepicker angularjs
在我从这个npm使用angularjs-DatePicker之前.
在这里,我可以从日期选择器中选择日期.但是现在我必须将字段设置为FromDate和ToDate,这意味着StartDate和EndDate应该在该周选择任何日期时显示.
例如:像日历一样01-08-2017从星期二开始,所以每当从01到05选择任何日期时,两个字段应该显示为FromDate为01并且Todate显示为06,并且只要用户选择31-07- 2017年的两个领域应该显示为7月30日和31日.
我有一个想法,就像下面提到的代码一样,从DotNet中的FromDate Calender控制onchange事件实现ToDate
Convert.ToDouble(objstart.DayOfWeek)).ToString("dd-MM-yyyy")
Run Code Online (Sandbox Code Playgroud)
但是如何在angularjs中实现这个用例.
谢谢
好的,所以我要做的就是计算不同的日期,并根据一周的开始或结束获取最小/最大日期。
这里:
//Use the date received, UTC to prevent timezone making dates shift
var pickedDate = new Date("08-03-2017UTC");
var startSunday = new Date(pickedDate);
startSunday.setDate(pickedDate.getDate() - pickedDate.getDay());
var startMonth = new Date(pickedDate);
startMonth.setDate(1);
var startDate = Math.max(startMonth,startSunday);
console.log("Start:" , new Date(startDate));
var endSaturday = new Date(pickedDate);
endSaturday.setDate(pickedDate.getDate() + (7-pickedDate.getDay()));
var endMonth = new Date(pickedDate);
endMonth.setMonth(pickedDate.getMonth()+1);//Add a month
endMonth.setDate(0);// to select last day of previous month.
var endDate = Math.min(endMonth,endSaturday);
console.log("End" , new Date(endDate));Run Code Online (Sandbox Code Playgroud)
诀窍是处理日期,找到所有可能的开始和结束日期,然后使用 Math.min 和 Math.max 选择正确的日期,这将使用时间戳来比较日期。