全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了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./jisuanqi/date_jisuanqi

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

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

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

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

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


# javascript  # 给定日期  # 返回  # 上月日期  # springmvc学习笔记-返回json的日期格式问题的解决方法  # Java Web程序中利用Spring框架返回JSON格式的日期  # JavaScript中用getDate()方法返回指定日期的教程  # js中获取时间new Date()的全面介绍  # js获取时间精确到秒(年月日)  # JS获取时间的相关函数及时间戳与时间日期之间的转换  # JS获取时间的方法  # js获取时间并实现字符串和时间戳之间的转换  # js获取时间(本周、本季度、本月..)  # JS如何获取未来n天的时间(返回日期:yyyy-mm-dd  # 并且判断是否是今天和星期)  # 给大家  # 在这里  # 会有  # 相关内容  # 基础上  # 一个月  # 遍历  # 会在  # 这个问题  # 感兴趣  # 数据结构  # 较多  # 上月  # 更多关于  # 在这种情况下  # 中都  # 所述  # 截止日期  # 关键在于  # 几款 


相关文章: 如何通过虚拟主机空间快速建站?  建站主机CVM配置优化、SEO策略与性能提升指南  东莞专业制作网站的公司,东莞大学生网的网址是什么?  如何通过VPS建站无需域名直接访问?  建站主机选哪家性价比最高?  盐城做公司网站,江苏电子版退休证办理流程?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  如何快速搭建虚拟主机网站?新手必看指南  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  小型网站制作HTML,*游戏网站怎么搭建?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何快速生成专业多端适配建站电话?  建站OpenVZ教程与优化策略:配置指南与性能提升  长沙企业网站制作哪家好,长沙水业集团官方网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  c++ stringstream用法详解_c++字符串与数字转换利器  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何零基础开发自助建站系统?完整教程解析  如何通过宝塔面板实现本地网站访问?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何解决VPS建站LNMP环境配置常见问题?  如何注册花生壳免费域名并搭建个人网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在Windows服务器上快速搭建网站?  如何在橙子建站中快速调整背景颜色?  建站168自助建站系统:快速模板定制与SEO优化指南  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  XML的“混合内容”是什么 怎么用DTD或XSD定义  制作网站的公司有哪些,做一个公司网站要多少钱?  开源网站制作软件,开源网站什么意思?  如何用AWS免费套餐快速搭建高效网站?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何用花生壳三步快速搭建专属网站?  如何通过PHP快速构建高效问答网站功能?  如何零基础在云服务器搭建WordPress站点?  C#如何在一个XML文件中查找并替换文本内容  如何在IIS管理器中快速创建并配置网站?  建站之星下载版如何获取与安装?  C++如何使用std::optional?(处理可选值)  手机网站制作与建设方案,手机网站如何建设?  大连网站制作公司哪家好一点,大连买房网站哪个好?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何快速查询网站的真实建站时间?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  南平网站制作公司,2025年南平市事业单位报名时间? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。