最近有个功能会进行数据的筛选于是便写了几个快速计算 今日,昨日,本周,上周,本月 范围的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. vim - Convert between hex and decimal

    http://vim.wikia.com/wiki/VimTip448 ga g8

  2. 一、oracle数据库成功安装步骤 (11gR2)

    下载安装包 从Oracle官方网站下载数据库软件安装包:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloa ...

  3. 阻止网页内部滚动条mousewheel事件冒泡

    function preventScroll(id){ var _this = document.getElementById(id); if(navigator.userAgent.indexOf( ...

  4. ClearTrace

    一年前两次手动使用fn_trace_gettable对跟踪文件进行分析,按TextData排序,通过截取TextData左边N位尝试分组,观察总体相同的过程或语句中的关键字,逐一得出跟踪分析报表,罗列 ...

  5. 2.C语言中的关键字

    1.auto 修饰局部变量,编译器默认所有局部变量都是用auto来修饰的,所以在程序中很少见到. 2.static 它作用可大了,除了可以修饰变量,还可以修饰函数,修饰变量,改变其作用域和生命周期,修 ...

  6. laravel5.1学习(1)--安装

    主要学习的是laravel5.1版本,服务器用的是wampserver3.0.4集成环境: 首先,安装composer(windows系统) 下载地址:https://getcomposer.org/ ...

  7. boost any库

    转: 原理 c++是一个强类型的语言,要实现一个万能类型可以考虑用void*来保存数据,然后用类型转换进行操作,如: class MyAny{ MyAny(void* input):content_( ...

  8. Leetcode: Minimum Unique Word Abbreviation

    A string such as "word" contains the following abbreviations: ["word", "1or ...

  9. Bringing the activity to foreground 将activity切换到前台

    今天遇到这个问题,找了很久,网上一些解决方法不够完全.特做此记录: 经测试以下方法不能将在后台运行的activity切换到前台运行! Intent i = new Intent(); i.setCla ...

  10. Dev用于界面按选中列进行分组统计数据源(实用技巧)

    如果有用U8的可以明白这个功能就是模仿他的统计功能.我不过是把他造成通用的与适应于DEV的. (效率为6000条数据分组统计时间为3秒左右分组列过多5秒.1000条以下0.几秒,500条下0.00几秒 ...