javascript完美实现给定日期返回上月日期的方法


Posted in Javascript onJune 15, 2017

本文实例讲述了javascript完美实现给定日期返回上月日期的方法。分享给大家供大家参考,具体如下:

在项目开发中,使用javascript对日期进行处理时,因为在查询中都会有一个初始值,大多都会在当前日期的基础上推一个月,在这种情况下,如果自己写一个,需要考虑的情况较多,在这里给大家分享一下一个比较完善的解决这个问题的方法。供大家参考。例如:给定截止日期enddate=2010-07-31

计算得到开始日期startdate=2010-06-30

这个问题的关键在于对以下几处的考虑:

1、startdate跨年

2、startdate是2月(需考虑闰年的情况)

3、大小月

<html>
<script type="text/javascript">
function getInitStartDate(enddate) {
  var comp = enddate.split("-");
  var year = comp[0];
  var month = comp[1];
  var date = comp[2];
  if (month == "01") { //前一月跨年
    month = 12;
    year = year - 1;
  } else {
    month = month - 1;
    if (month == 2 && date > 28) {
      date = isLeapYear(year) ? 29 : 28;
    } else if (date == 31) {
      switch (month) {
      case 4:
      case 6:
      case 9:
      case 11:
        date = 30;
        break;
      default:
        break;
      }
    }
  }
  month = ("" + month).length == 1 ? ("0" + month) : ("" + month);
  var dateFormat = year + "-" + month + "-" + date;
  return dateFormat;
}
function isLeapYear(y) { //判断y是否为闰年
  return (y % 4 == 0) && (y % 400 == 0 || y % 100 != 0);
}
alert(getInitStartDate("2010-07-31"));
</script>
</html>

配套给出一个格式化日期的方法:

<script language="JavaScript"> 
Date.prototype.format = function(format) //author: meizz
{
 var o = {
  "M+" : this.getMonth()+1, //month
  "d+" : this.getDate(),  //day
  "h+" : this.getHours(),  //hour
  "m+" : this.getMinutes(), //minute
  "s+" : this.getSeconds(), //second
  "q+" : Math.floor((this.getMonth()+3)/3), //quarter
  "S" : this.getMilliseconds() //millisecond
 }
 if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
  (this.getFullYear()+"").substr(4 - RegExp.$1.length));
 for(var k in o)if(new RegExp("("+ k +")").test(format))
  format = format.replace(RegExp.$1,
   RegExp.$1.length==1 ? o[k] :
    ("00"+ o[k]).substr((""+ o[k]).length));
 return format;
}
alert(new Date().format("yyyy-MM-dd"));
alert(new Date("january 12 2008 11:12:30").format("yyyy-MM-dd hh:mm:ss"));
</script>

PS:这里再为大家推荐几款比较实用的天数计算在线工具供大家使用:

在线日期/天数计算器:
http://tools.3water.com/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器:
http://tools.3water.com/jisuanqi/datecalc

在线日期天数差计算器:
http://tools.3water.com/jisuanqi/onlinedatejsq

在线天数计算器:
http://tools.3water.com/jisuanqi/datejsq

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js本身的局限性 别让javascript做太多事
Mar 23 Javascript
JavaScript arguments 多参传值函数
Oct 24 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
jQuery实现id模糊查询的小例子
Mar 19 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 Javascript
js实现自定义进度条效果
Mar 15 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
koa上传excel文件并解析的实现方法
Aug 09 Javascript
JS自动生成动态HTML验证码页面
Jun 14 #Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 #Javascript
详解AngularJS 模块化
Jun 14 #Javascript
JS判断时间段的实现代码
Jun 14 #Javascript
bootstrap选项卡扩展功能详解
Jun 14 #Javascript
zTree树形插件异步加载方法详解
Jun 14 #Javascript
详解Angular2响应式表单
Jun 14 #Javascript
You might like
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
php生成无限栏目树
2017/03/16 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python中return语句用法实例分析
2015/08/04 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
应届生污水处理求职信
2013/11/06 职场文书
精彩的推荐信范文
2013/11/26 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
python缺失值的解决方法总结
2021/06/09 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
利用Python实现模拟登录知乎
2022/05/25 Python