获取选择的当前天、周、月、年的时间段

/**
 * Created by Administrator on 2017/5/6.
 */
/**
 * options:{"type":2,"date":"2017-5-6","connect":"-"}
 * type:"1" 获取当天
 * type:"2" 获取本周
 * type:"3" 获取本月
 * type:"4" 获取本年
 */
function GetDatePeriod(options) {
    this.options={
        date:new Date(),
        type:1,
        connect:"-"
    };
    for(var key in options){
        if(options[key]!=""){
            this.options[key]=options[key];
        }
    }
    var selD=new Date(this.options.date);
    var selDayOfWeek=selD.getDay();
    var selDate=selD.getDate();
    var selMonth=selD.getMonth();
    var selYear=selD.getFullYear();
    var startDate, endDate;
    //补齐数位
    this.digit = function(num) {
        return num < 10 ? "0" + (num | 0) :num;
    };
    //判断闰年
    this.isLeap = function(y) {
        return (y % 100 !== 0 && y % 4 === 0) || (y % 400 === 0);
    };
    //获取本月天数
    this.getDaysNum = function(y, m) {
        var num = 31;
        switch (parseInt(m)) {
            case 2:
                num = this.isLeap(y) ? 29 : 28; break;
            case 4: case 6: case 9: case 11:
            num = 30; break;
        }
        return num;
    };
    //日期格式化
    this.dateFormat=function(dateSrc){
        var connect=this.options.connect;
        return dateSrc.getFullYear()+connect+this.digit(dateSrc.getMonth()+1)+connect+this.digit(dateSrc.getDate())
    };
    //1:本日,2:本周,3:本月,4:本年
    switch (this.options.type) {
        case "1":
            startDate = new Date(selYear, selMonth, selDate);
            endDate = new Date(selYear, selMonth, selDate);
            break;
        case "2":
            if (selDayOfWeek > 0) {
                startDate = new Date(selYear, selMonth, selDate - selDayOfWeek + 1);
                endDate = new Date(selYear, selMonth, selDate + (7 - selDayOfWeek));
            } else {
                startDate = new Date(selYear, selMonth, selDate - selDayOfWeek - 6);
                endDate = new Date(selYear, selMonth, selDate);
            }
            break;
        case "3":
            startDate = new Date(selYear, selMonth, 1);
            endDate = new Date(selYear, selMonth,this.getDaysNum(selYear,selMonth+1));
            break;
        case "4":
            startDate = new Date(selYear, 0, 1);
            endDate = new Date(selYear, 11, 31);
            break;
    }
    this.periodOutput=function(){
        //返回本周,月,年的起止时间
        startDate=this.dateFormat(startDate);endDate=this.dateFormat(endDate);
        //如果选择的时间大于当前时间则把endDate设置为当前时间
        var curDate=this.dateFormat(new Date());
        endDate=new Date(endDate).getTime()>new Date(curDate).getTime()?curDate:endDate;
        return {
            startDate:startDate,
            endDate:endDate
        }
    }
};
console.info("当前周时间段",new GetDatePeriod({type:"2",date:"2017-05-06",‘connect‘:‘/‘}).periodOutput());

  

时间: 2024-08-30 11:30:21

获取选择的当前天、周、月、年的时间段的相关文章

java获取当前时间的年周月季度等的开始结束时间

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by xiaochun on 2016/3/24. */ public class TimeUtil { public static void main(String[] args) { System.out.println("当前小时开始:"+getCurrentHourStartTime

Flex自定义组件开发之日周月日期选择日历控件

原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的任一位置单击时,将弹出一个 DateChooser 控件,显示当月的所有日期.如果未选择日期,则该文本字段为空白,并且 DateChooser 控件中将显示当前日期的月份.当 DateChooser 控件处于打开状态时,用户可以在各个月份和年份之间滚动,并选择某个日期.选择日期后,DateChooser 控件关闭,

获得自然日周月时间

1.以下函数都可以直接使用. function getReportDates($periods){ $dates = array(); //当前时间周期的起止时间 $end = getWeekendByDate($periods); $start = date("Y-m-d",strtotime("-".($periods-1). "day",strtotime($end))); //获取日期($times个周期) $dates['start']

获取本月周次和日期时间段信息

package com.wdcloud.monitoring.common; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import com.wdcloud.monitoring.Model.WeekInfoModel; public class DateUtils {

Mysql获取系统时间,年,月,日

Mysql数据库中获取系统时间,年,月,日单个获取 获取当前系统日期时间:select SYSDATE() AS 系统日期时间; 获取当前系统年月日:select current_date AS 年月日; 获取当前系统年份:select year(CURRENT_DATE) AS 年 ; 获取当前系统月份:select month(CURRENT_DATE) AS 月; 获取当前系统日:select day(CURRENT_DATE) AS 日; 获取当前系统时间:select time(SYS

jquery1.11 操作checkbox:全选、取消全选、获取选择元素、获取取消选择元素(总结)

jquery1.11.1版本完成对checkbox的操作 1. 使用属性prop设置选中状态 2.使用:checked和:not(:checked)获取选中的元素 源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1&quo

PHP获取当前日期及本周一是几月几号的方法

这篇文章主要介绍了PHP获取当前日期及本周一是几月几号的方法,涉及php时间戳.日期转换与运算相关操作技巧,需要的朋友可以参考下 本文实例讲述了PHP获取当前日期及本周一是几月几号的方法.分享给大家供大家参考,具体如下: <?php header("content-type:text/html;charset=utf-8"); date_default_timezone_set('PRC'); function getWeek($unixTime=''){ $unixTime=i

PHP获取一年有几周以及每周开始日期和结束日期

最近接了一个项目,其中有一需求是用php获取一年有几周以及每周开始日期和接触日期.在网上找些资料没有合适的,于是自己做了一份,下面通过两种方式实现PHP获取一年有几周以及每周开始日期和结束日期 代码一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?php header("Content-type:text/html;charset=utf-8"); date_default_timezone_set(&

MySql按周/月/日分组统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month