js的newdate减一个月(js怎么写一个时间相减得到时间差)

本文目录
- js怎么写一个时间相减得到时间差
- js如何计算两个日期的月份差
- js中两个Date类型 如何做减法
- js中,当前时间减去过去某一年某个月某日的算法,如何用js表示
- JS 计算两个日期之间的月份,不足一个月按一个月计算(求大神指点)
- JS显示时间的问题:fullDate=fullDate+(date.getMonth()+1)+“月“;我若不+1,就会少一个月看完整代码图
- 如何用js进行日期的加减
- js 日期减一个月零10 天
js怎么写一个时间相减得到时间差
需要准备的材料分别有:电脑、html器、浏览器。
1、首先,打开html器,新建html文件,例如:index.html。
2、在index.html中的《script》标签,输入js代码:
var a = ’2019-7-1 12:00:00’, b = ’2019-7-2 14:58:05’;
var t1 = Date.parse(new Date(a.replace(/-/g, "/")));
var t2 = Date.parse(new Date(b.replace(/-/g, "/")));
document.body.innerText = b + ’ 比 ’ + a + ’ 大 ’ + (t2 - t1) + ’秒’;
3、浏览器运行index.html页面,此时会打印出2个时间相减得到的时间差。
js如何计算两个日期的月份差
如何通过JS计算两个日期相差天数(月份同理):var s1 = "2007-01-01".replace(/-/g, "/");
var s2 = "2007-12-31".replace(/-/g, "/");
d1 = new Date(s1);
d2 = new Date(s2);
var time= d2.getTime() - d1.getTime();
var days = parseInt(time / (1000 * 60 * 60 * 24));
alert("相差天数: " + days); JS计算两个时间之间的月份差: //本代码经过我自己的测试没问题
//注意 d_start、和d_end是Date对象
//d_start可以这样创建:Date d_start = new Date(2010,03,31);
//d_end可以这样创建:Date d_start = new Date(2010,04,1);
//startTmp、endTmp是数组对象 解决日期是XXXX年XX月31日是所遇见的问题(如2010-03-31被java script看成//是2010-04-01,我发现xxxx-xx-31在java script中它的毫秒值和它的下一个月的第一天一样)
//那么对应的startTmp的值为
//
注意后面有个简单的方法,并且我解释了上面的问题出现的原因
//
function diffDay(d_start, d_end, startTmp, endTmp){
var confict_day = 0;
var y_startIsLeap = false;
var y_start = d_start.getYear();
var y_end = d_end.getYear();
var m_start = startTmp;
var m_end = endTmp;
//judge whether year is run year eg 2000
if(isLeapYear(y_start)){
y_startIsLeap = true;
}
//judge whether same year
if(y_start!=y_end){
confict_day ++;
}else{
if(m_start==m_end){
confict_day ++;
}
if(m_start==1&&m_end==2){
if(y_startIsLeap){
confict_day+=3;
}else{
confict_day+=4;
}
}
if(m_start==2&&m_end==3){
if(y_startIsLeap){//start is leap year
confict_day --;
}else{
confict_day -=2;
}
}
if(is31DayMonth(m_start)&&is30DayMonth(m_end)){
confict_day =2;
}
}
var tmp = (d_end.getTime()-d_start.getTime())/24/60/60/1000;
tmp +=confict_day;
return tmp;
}
function isLeapYear(year){
var flag = false;
year+=1900;
if((year%400==0)||(year%4==0&&year%100!=0)){
flag = true;
}
return flag;
}
function is30DayMonth(month){
var tmp = ;
month = month-0;
var flag = false;
for(var i=0; i《tmp.length; i++){
if(month==tmp){
flag = true;
break;
}
}
return flag;
}
function is31DayMonth(month){
var tmp = ;
var flag = false;
month = month-0;
for(var i=0; i《tmp.length; i++){
if(month==tmp){
flag = true;
break;
}
}
return flag;
}
function isFebMonth(month){
month = month-0;
var flag = false;
if(month==2){
flag = true;
}
return flag;
}
function isLastDay(year, month, date){
var flag = false;
if(date==30&&is30DayMonth(month)){
flag = true;
}else if(date==31&&is31DayMonth(month)){
flag = true;
}else if(isFebMonth(month)){
if(isLeapYear(year)&&date==29){
flag = true;
}else if(!isLeapYear(year)&&date==28){
flag = true;
}
}
return flag;
}
javascript的API发现在js中月份的范围是0-11即从0开始(0表示一月份),所以也就会出现我前面说的2010-03-31被js看成是2010-04-01,其实是这么回事:2010-03-31在js中表示的时间是2010年4月31日而不是2010-3-31,我们知道4月份是没有31日的,所以js会默认地帮你向后移一天也即2010-4-1(注意这里表示的时间是2010年5月1日)
因此我们只要在原来的月份上减去一,然后通过getTime()获取毫秒数,并两者相减,再除以一天的毫秒数即得到所谓的相隔天数!!!
EG:
var start = $("#startDate").val();
var end = $("#endDate").val();
var reason =$("#reason").val();
var days = $("#leaveDays").val();
if(!start.match(new RegExp(’^+.*$’))){
alert("Please choosh the start date!");
return;
}
if(!end.match(new RegExp(’^+.*$’))){
alert("Please choosh the end date!");
return;
}
if(reason==’’){
alert("Please input reason!");
return;
}
var startTmp = start.split("-");
var endTmp = end.split("-");
var dS = new Date(startTmp);//注意这里减除一
var dE = new Date(endTmp);//注意这里减除一
var nowDate = new Date();
var nowTmp = new Date(nowDate.getYear()+1900,nowDate.getMonth(),nowDate.getDate());
if((nowTmp-dS)》0){
alert("Start date can’t early today!");
return;
}
var distance = (dE-dS)/86400000;
distance++;
这样就可以了,不用向上面的这么复杂
核心就在上面的时间月份是从1月开始的(与js默认的月份从0开始不一致!!!)
***隐藏网址***
js中两个Date类型 如何做减法
可以直接相减,获得的结果就是两个时间之间相差的毫秒数,然后可以再从中计算获得相差的年月日时分秒来。
比如下面的代码是获得今年(2018年)剩余的天数:
var d1=new Date();
var d2=new Date(2019,0,1);
var d=parseInt((d2-d1)/1000/3600/24);
console.log("2018年剩余的天数为"+d+"天");
js中,当前时间减去过去某一年某个月某日的算法,如何用js表示
var curtime=new Date();
var endtime=new Date("年,月,日");
var ctime=Math.ceil((curtime.getTime()-endtime.getTime())/(24*60*60*1000));
JS 计算两个日期之间的月份,不足一个月按一个月计算(求大神指点)
function getAge(birthday) {
function MyDateObj(t) {
return {
nowY: parseInt(t.getFullYear()),
nowM: parseInt(t.getMonth()) + 1,
nowD: parseInt(t.getDate())
};
}
var now = MyDateObj(new Date());
var br = MyDateObj(birthday);
var y = now.nowY - br.nowY;
var m = now.nowM - br.nowM;
// 过滤虚岁
if (now.nowM - br.nowM 《 0 || (now.nowM - br.nowM == 0 && now.nowD - br.nowD 《 0)) {
y--;
m=m+12;
}
console.log("计算出来的年", y);
// 大于一岁
if (y 》 0) {
return y + "岁";
}
// 输出月
if (m 《 0) {
m + 12;
}
console.log("计算出来的月", m);
if (now.nowD - br.nowD 《 0) {
m--;
}
if (m 》 0) {
return m + "月";
}
// 输出天
var d = (new Date(`${now.nowY}/${now.nowM}/${now.nowD}`).getTime()
- birthday.getTime()) / 1000 / 60 / 60 / 24;
return d + "天";
}
getAge(new Date(’2020/07/31’));
————————————————
版权声明:本文为CSDN博主「u011010407」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
今天新鲜出炉的
JS显示时间的问题:fullDate=fullDate+(date.getMonth()+1)+“月“;我若不+1,就会少一个月看完整代码图
楼上正解。
用这个也可以
script type="text/javascript"》
window.onload = function getNowTime(){
//取得当前时间
var now= new Date();
var year=now.getYear(); //在火狐上 显示 111 本应是 2011
var year=now.getFullYear(); //这个也可以
var month=add_zero(now.getMonth()+1);
var day=add_zero(now.getDate());
var hour=add_zero(now.getHours());
var minute=add_zero(now.getMinutes());;
var second=add_zero(now.getSeconds());
var nowdate=year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
document.getElementById("applicationDate").value = nowdate;
}
function add_zero(temp)
{
if(temp《10) return "0"+temp;
else return temp;
}
《/script》
如何用js进行日期的加减
开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下资料,终于有了如下重大发现,以在某个日期上加减天数来说,其实只要调用Date对象的setDate()函数就可以了,具体方法如下:
function addDate(date,days){
var d=new Date(date);
d.setDate(d.getDate()+days);
var m=d.getMonth()+1;
return d.getFullYear()+’-’+m+’-’+d.getDate();
}
其中,date参数是要进行加减的日期,days参数是要加减的天数,如果往前算就传入负数,往后算就传入正数,如果是要进行月份的加减,就调用setMonth()和getMonth()就可以了,需要注意的是返回的月份是从0开始计算的,也就是说返回的月份要比实际月份少一个月,因此要相应的加上1。
js 日期减一个月零10 天
我给你举个例子吧!就拿当前时间来说,下面是代码
var now = new Date();
tomo = new Date((now/1000-86400*10)*1000);//先减去10天
var year = tomo.getYear();
var month = tomo.getMonth();//再减去一个月,当前月应该是tomo.getMonth()+1
var date = tomo.getDate();
month = (month《10)?"0"+month:month;
date = (date《10)?"0"+date:date;
var time = year+"/"+month+"/"+date;//最终得到的时间

更多文章:
跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意
2026年10月11日 05:10
易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)
2026年10月11日 03:00
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10
maven仓库jar网站(如何在maven仓库中添加jar包)
2026年10月10日 19:50





