javascript完美实现给定日期返回上月日期的方法
发布时间 - 2026-01-11 01:53:26 点击率:次本文实例讲述了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
# 并且判断是否是今天和星期)
# 给大家
# 在这里
# 会有
# 相关内容
# 基础上
# 一个月
# 遍历
# 会在
# 这个问题
# 感兴趣
# 数据结构
# 较多
# 上月
# 更多关于
# 在这种情况下
# 中都
# 所述
# 截止日期
# 关键在于
# 几款
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php 三元运算符实例详细介绍
如何快速使用云服务器搭建个人网站?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
如何在阿里云服务器自主搭建网站?
如何在万网主机上快速搭建网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
HTML 中动态设置元素 name 属性的正确语法详解
Swift中循环语句中的转移语句 break 和 continue
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel如何使用withoutEvents方法临时禁用模型事件
Java垃圾回收器的方法和原理总结
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何实现多对多模型关联?(Eloquent教程)
如何在Tomcat中配置并部署网站项目?
实例解析Array和String方法
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
三星网站视频制作教程下载,三星w23网页如何全屏?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何处理表单验证?(Requests代码示例)
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
详解Android中Activity的四大启动模式实验简述
简单实现jsp分页
如何用IIS7快速搭建并优化网站站点?
浅谈redis在项目中的应用
WordPress 子目录安装中正确处理脚本路径的完整指南
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Android使用GridView实现日历的简单功能
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
什么是javascript作用域_全局和局部作用域有什么区别?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何挑选优质建站一级代理提升网站排名?
历史网站制作软件,华为如何找回被删除的网站?
Android okhttputils现在进度显示实例代码
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何快速搭建高效服务器建站系统?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
javascript如何操作浏览器历史记录_怎样实现无刷新导航
制作电商网页,电商供应链怎么做?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel怎么判断请求类型_Laravel Request isMethod用法
EditPlus中的正则表达式 实战(2)
中山网站制作网页,中山新生登记系统登记流程?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程

