最近有个功能会进行数据的筛选于是便写了几个快速计算 今日,昨日,本周,上周,本月 范围的function 以便以后遇到同样的问题可以直接进行复用,代码如下:

/*
*获取今日的起始和结束时间
*返回值:"起始时间,结束时间"
*/
function ToDayStr() {
var returnStr = "";
var date = new Date(); //当前时间
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
//var hour = date.getHours();
//var minutes = date.getMinutes();
//var second = date.getSeconds();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
returnStr = year + "/" + month + "/" + day + " 00:00:00,"; //起始时间
returnStr += year + "/" + month + "/" + day + " 23:59:59"; //结束时间
return returnStr;
} /*
*获取昨日的起始和结束时间
*返回值:"起始时间,结束时间"
*/
function YesterDayStr() {
var date = GetDate(1, 1); //当前时间前一天
var returnStr = "";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
returnStr = year + "/" + month + "/" + day + " 00:00:00,"; //起始时间
returnStr += year + "/" + month + "/" + day + " 23:59:59"; //结束时间
return returnStr;
} /*
*获取本周的起始和结束时间
*返回值:"起始时间,结束时间"
*/
function ThisWeekStr() {
var returnStr = "";
var date = new Date(); //当前时间
var week = date.getDay(); //获取今天星期几
var monday = GetDate2(week - 1, 1, date); //获取星期一
var sunday = GetDate2(7 - week, 2, date); //获取星期天
//起始时间的年月日
var year1 = monday.getFullYear();
var month1 = monday.getMonth() + 1;
var day1 = monday.getDate();
//结束时间的年月日
var year2 = sunday.getFullYear();
var month2 = sunday.getMonth() + 1;
var day2 = sunday.getDate();
//处理起始时间小于10的追加"0"在前面
month1 = month1 < 10 ? "0" + month1 : month1;
day1 = day1 < 10 ? "0" + day1 : day1;
//处理结束时间小于10的追加"0"在前面
month2 = month2 < 10 ? "0" + month2 : month2;
day2 = day2 < 10 ? "0" + day2 : day2; returnStr = year1 + "/" + month1 + "/" + day1 + " 00:00:00,"; //起始时间
returnStr += year2 + "/" + month2 + "/" + day2 + " 23:59:59"; //结束时间
return returnStr;
} /*
*获取上周的起始和结束时间
*返回值:"起始时间,结束时间"
*/
function LastWeekStr() {
var returnStr = "";
var date = new Date(); //当前时间
var week = date.getDay(); //获取今天星期几
var monday = GetDate2(week + 6, 1, date); //获取上周星期一
var sunday = GetDate2(week, 1, date); //获取上周星期天
//起始时间的年月日
var year1 = monday.getFullYear();
var month1 = monday.getMonth() + 1;
var day1 = monday.getDate();
//结束时间的年月日
var year2 = sunday.getFullYear();
var month2 = sunday.getMonth() + 1;
var day2 = sunday.getDate();
//处理起始时间小于10的追加"0"在前面
month1 = month1 < 10 ? "0" + month1 : month1;
day1 = day1 < 10 ? "0" + day1 : day1;
//处理结束时间小于10的追加"0"在前面
month2 = month2 < 10 ? "0" + month2 : month2;
day2 = day2 < 10 ? "0" + day2 : day2; returnStr = year1 + "/" + month1 + "/" + day1 + " 00:00:00,"; //起始时间
returnStr += year2 + "/" + month2 + "/" + day2 + " 23:59:59"; //结束时间
return returnStr;
} /*
*获取本月的起始和结束时间
*返回值:"起始时间,结束时间"
*/
function ThisMonthStr() {
var returnStr = "";
var date = new Date(); //当前时间
var year = date.getFullYear();
var month = date.getMonth(); var min = new Date(year, month, 1); //本月月初
var max = new Date(year, month + 1, 0); //本月月底 //起始时间的年月日
var year1 = min.getFullYear();
var month1 = min.getMonth() + 1;
var day1 = min.getDate();
//结束时间的年月日
var year2 = max.getFullYear();
var month2 = max.getMonth() + 1;
var day2 = max.getDate();
//处理起始时间小于10的追加"0"在前面
month1 = month1 < 10 ? "0" + month1 : month1;
day1 = day1 < 10 ? "0" + day1 : day1;
//处理结束时间小于10的追加"0"在前面
month2 = month2 < 10 ? "0" + month2 : month2;
day2 = day2 < 10 ? "0" + day2 : day2; returnStr = year1 + "/" + month1 + "/" + day1 + " 00:00:00,"; //起始时间
returnStr += year2 + "/" + month2 + "/" + day2 + " 23:59:59"; //结束时间
return returnStr;
} /*
*获取当前日期前N天或后N日期(N = day)
*type:1:前;2:后
*/
function GetDate(day, type) {
var zdate = new Date();
var edate;
if (type === 1) {
edate = new Date(zdate.getTime() - (day * 24 * 60 * 60 * 1000));
} else {
edate = new Date(zdate.getTime() + (day * 24 * 60 * 60 * 1000));
}
return edate;
} /*
*获取传入的日期前N天或后N日期(N = day)
*type:1:前;2:后
*date:传入的日期
*/
function GetDate2(day, type, date) {
var zdate;
if (date === null || date === undefined) {
zdate = new Date();
} else {
zdate = date;
}
var edate;
if (type === 1) {
edate = new Date(zdate.getTime() - (day * 24 * 60 * 60 * 1000));
} else {
edate = new Date(zdate.getTime() + (day * 24 * 60 * 60 * 1000));
}
return edate;
}

 这里面需要注意的是不要单纯的在日期或时间上进行加减,注意日期的前后通常处理的都是毫秒数 ,可仿照以上代码中的GetDate 函数思路,仅供参考,如有疑问欢迎大家留言进行交流

JS函数 计算 今日,昨日,本周,上周,本月的更多相关文章

  1. JS 时间 获取 当天,昨日,本周,上周,本月,上月

    调用 setTimeRange (2); function  setTimeRange (v) { var fmt = 'YYYY-MM-DD HH:mm'; var now = new Date() ...

  2. SQL报表语句;SQL获取今日、本周、本月数据

    SQL报表语句     SQL获取今日.本周.本月数据 本日:select * from table where datediff(dd,C_CALLTIME,getdate())=0     --C ...

  3. [moka同学笔记]php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内)

    <?php /** * php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内) * * author:ihelloworld2010@gmail.com * d ...

  4. MySQL查询今天/本周/上周/本月/上个月份的数据

    MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周.上周.本月.上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看. 查询当前今天的数据 SELECT name,sub ...

  5. 用php获取本周,上周,本月,上月,本季度日期的代码

    echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",str ...

  6. Asp.net C# 获取本周上周本月上月本年上年第一天最后一天时间大全

    DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); ) * weeknow + ; D ...

  7. 今日、本周、本月时间列表 python方法

    def get_time(self): ''' @author : Cong @Email : 624420781@qq.com @描 述 : 生产时间列表 ''' # 生成本日时间列表 i = da ...

  8. PHP获取今日、本周、本月、今年的开始日期和结束日期

    /** * 今天开始的Y-m-d H:i:s * * @return string */ public static function beginToday() { return date('Y-m- ...

  9. mysql查询今日、本周、本月记录

    SELECT * FROM table_name WHERE to_days(createtime) = to_days(now()); SELECT * FROM table_name WHERE ...

随机推荐

  1. firefox 插件 URLRedirector 审核通过

    firefox 插件 URLRedirector 审核通过 前段时间弄的 firefox 插件,昨天通过了审核,已经在 firefox 上可以搜索和安装. 插件用 webextension 写的,代码 ...

  2. RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1

    1.安装EPEL-7: rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安 ...

  3. AngularJS Best Practices: ng-include vs directive

    For building an HTML template with reusable widgets like header, sidebar, footer, etc. Basically the ...

  4. delphi 判断一个数组的长度用 Length 还是 SizeOf ?

    判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是 ...

  5. The connection to adb is down, and a severe error has occured.(转)

    启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有ad ...

  6. noi 04:求整数的和与均值

    04:求整数的和与均值 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 读入n(1 <= n <= 10000)个整数,求它们的和与均值. 输入 ...

  7. Thinkphp 中 distinct 的用法

    TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct ...

  8. Android 屏幕适配

    前言 手机的屏幕适配一直是非常麻烦的,现在我就以做笔记的方式来简单梳理下 单位理解 首先让我们先来看看关于手机所用到的单位 真实物理尺寸单位: mm:表示毫米,是屏幕的物理尺寸. in:表示英寸,是屏 ...

  9. Djunit工作记录Mock时出现为null的情况setReturnValueAt|MockObjectManager.addReturnValue不起作用

    最近工作要对代码进行局部测试并编写测试文档,可是偶的环境还没搞好哦(开始不太乐意直接请教前辈,还是选择自己先搞一下了)经过电脑重装jdk ,eclipse,djunit工具包ver***,等等确定不是 ...

  10. 夺命雷公狗-----React---19--表单的值的修改

    少了1个e,在代码部分补回,否则会报错 <!DOCTYPE> <html> <head> <meta charset="utf-8"> ...