从JavaScript中的日期中减去天,月,年

有谁知道约会(例如今天)并回溯X天,X个月和X年的简单方法吗?

我已经尝试过:

var date = new Date();

$("#searchDateFrom").val((date.getMonth() -1 ) + '/' + (date.getDate() - 6) + '/' + (date.getFullYear() - 1));

但是我得到一个负日期,例如今天的输出是:

3/-3/2015

有什么建议吗?

谢谢。

user3378165 asked 2020-07-03T00:02:13Z

6个解决方案

68 votes

您只是从一个数字中减少了值。 因此,从3(日期)中减去6将仅返回-3。

您需要在日期对象中单独添加/删除时间单位

var date = new Date();

date.setDate( date.getDate() - 6 );

date.setFullYear( date.getFullYear() - 1 );

$("#searchDateFrom").val((date.getMonth() ) + '/' + (date.getDate()) + '/' + (date.getFullYear()));

gurvinder372 answered 2020-07-03T00:02:31Z

17 votes

正如其他人所说,您要从date.getDate()之类的方法返回的数值中减去,您需要在date变量上重置这些值。 我在下面创建了一个可以为您完成此操作的方法。 它使用new Date()创建一个日期,该日期将使用当前日期进行初始化,然后根据传入的值设置日期,月份和年份。例如,如果要返回6天,则像var newdate = createDate(-6,0,0)那样传入-6。 如果您不想设置值,请传入零(或者可以设置默认值)。 该方法将为您返回新日期(已在Chrome和Firefox中测试)。

function createDate(days, months, years) {

var date = new Date();

date.setDate(date.getDate() + days);

date.setMonth(date.getMonth() + months);

date.setFullYear(date.getFullYear() + years);

return date;

}

Phil answered 2020-07-03T00:02:52Z

14 votes

我建议使用MomentJS库。 它们使与Dates的所有交互变得更加简单。

如果使用Moment,您的代码将像这样简单:

var today = moment();

var nextMonth = today.add('month', 1);

您可以在以下位置找到MomentJS:[http://momentjs.com/]

更新:

在JavaScript中,Date.getDate()函数返回从1-31开始的当前日期。 您将从这个数字中减去6,目前是该月的3号。 这将值带到-3。

FvB answered 2020-07-03T00:03:30Z

4 votes

这是一个纯函数,需要以传递的开始日期为基础,以Phil的答案为基础:

function deltaDate(input, days, months, years) {

var date = new Date(input);

date.setDate(date.getDate() + days);

date.setMonth(date.getMonth() + months);

date.setFullYear(date.getFullYear() + years);

return date;

}

例如 将一个月前的日期写入控制台日志:

console.log(deltaDate(new Date(), 0, -1, 0));

请注意,即使您在月底或年份结束时也可以使用。

N8allan answered 2020-07-03T00:03:59Z

2 votes

使用moment.js库进行时间和日期管理。

import moment = require('moment');

const now = moment();

now.subtract('seconds', 7); // takes 7 seconds of the current time

now.subtract('days', 7); // takes 7 days of the current date

now.subtract('months', 7); // takes 7 months of the current date

now.subtract('years', 7); // takes 7 years of the current date

Younes Henni answered 2020-07-03T00:04:18Z

0 votes

这不能完全回答问题,但是对于任何能够计算希望抵消初始日期的天数的人,以下方法将起作用:

myDate.setUTCDate(myDate.getUTCDate() + offsetDays);

offsetDays可以是正数或负数,并且对于任何给定的初始日期和任何给定的偏移量,结果都是正确的。

Alan Gee answered 2020-07-03T00:04:43Z

date js 减去_从JavaScript中的日期中减去天,月,年相关推荐

  1. mysql当前日期减去天数,有没有一种方法可以从MySQL中的日期中减去天数?

    是的,您可以使用date_sub()从日期中减去天数.以下是语法-select date_sub(yourColumnName,Interval yourAmountOfDays day) from  ...

  2. java date加月_关于java:在日期中添加月份

    我想根据用户选择的持续时间添加月数. 我已经编写了以下代码,它采用当前日期并根据用户选择的持续时间添加月份,但我希望它采用从前端传递的开始日期并根据持续时间添加月份. String le=ra.get ...

  3. 在别人网页上运行js脚本_初始JavaScript,世界上最流行的语言之一

    1.JavaScript 是什么? JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) 脚本语言:不需要编译,运行过程中由 js 解释器( j ...

  4. 截取年月日在hana中怎么写_获取Sting类型格式-日期中的年月日

    利用java获取当前的时间(String类型,年-月-日 时:分:秒) //获取当前的日期 Date date = new Date(); //设置要获取的时间类型 SimpleDateFormat ...

  5. mysql 日期小时,如何从MySQL中的日期时间减去3小时?

    使用以下任何一种方法,从MySQL中的DateTime减去3个小时.第一种方法如下- 情况1-使用DATE_ADD()select date_add(yourColumnName,interval - ...

  6. excel日期相减去除周末_仅在Excel中允许周末日期

    excel日期相减去除周末 With Excel Data Validation, you can add rules to a data entry sheet, and control what ...

  7. js鼠标事件大全-Javascript鼠标事件大全

    js鼠标事件大全-Javascript鼠标事件大全 2009年03月11日 星期三 14:22 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClick 当键盘上的某个键被按下并且释放时 ...

  8. panda提取时间戳中的日期_工作中常用的十个日期时间计算公式,你一定要收藏...

    1.计算本月天数 在单元格输入公式:=DAY(EOMONTH(TODAY(),0)) 后将格式改为常规. 2,计算年龄 在C4单元格输入公式:=DATEDIF(B4,TODAY(),"y&q ...

  9. select语句(4)--Oracle中的日期格式及千年虫问题

    一.日期格式及表示的含义:           yyyy:四位数的年份           rrrr:四位数的年份           yy:两位数的年份           rr:两位数的年份    ...

最新文章

  1. 项目管理必知的7个重点
  2. 如何看待和评价浙江大学18级硕士研究生齐俏两年发14篇论文,获浙大最高层次奖学金?...
  3. load data with matlab
  4. fhqtreap的学习笔记
  5. c++ 0.你好,世界
  6. bootstrap --- 鼠标停留提示事件
  7. TensorFlow的可训练变量和自动求导机制
  8. 并行计算机架构_计算机科学组织| 并行处理
  9. Qt QString 与char* 相互转换
  10. solidworks今日制造插件_用SolidWorks设计齿轮,如何事半功倍,且听我说说
  11. python发送电子邮件
  12. 从零开始学androidNotification通知.四十四.
  13. java gb2312中文乱码_Java中文乱码问题(转)
  14. 香港房地产业发展历程、现状、问题及对策探究
  15. Java网络编程并实现一对一聊天室功能
  16. 12v继电器驱动电路
  17. 拓嘉启远:拼多多前期没有流量如何补充
  18. B站回应HR称“核心用户都是Loser”、求职者是“白嫖党”:已被劝退
  19. deeplearning.ai课程作业:Recurrent Neural Networks- Course 5 Week3
  20. 抖音头条小程序常见的问题

热门文章

  1. 本周搜索学习心得及比赛总结
  2. 灵石县“灵石酸枣仁”品牌正式发布,促进产业发展 助力乡村振兴
  3. 2022年中国企业数字化转型白皮书 附下载
  4. linux查看端口物理状态,Linux查看端口使用状态及启动
  5. JAVA代审之Struts2漏洞S2-057的调试分析
  6. 如何保存网上的GIF动态图
  7. 越级智慧战力 奇瑞新能源奇瑞无界Pro
  8. 从阿里巴巴IPO联想到创始人和资方关系
  9. Cocos Creator 龙骨DragonBones(导出骨骼/使用骨骼/局部换装/全局换装)
  10. window下安装Xamarin(手动安装)