如何获得当前日期前 30 天?

     2023-05-09     149

关键词:

【中文标题】如何获得当前日期前 30 天?【英文标题】:How to get 30 days prior to current date? 【发布时间】:2012-02-09 04:39:01 【问题描述】:

我有一个开始日历输入框和一个结束日历输入框。我们希望默认开始日历输入框在当前日期前 30 天,结束日历输入框为当前日期。这是我的日期变量。

var today = new Date(),
    dd    = today.getDate(),
    mm    = today.getMonth(),
    yyyy  = today.getFullYear(),
    month = ["January", "February", "March",
        "April", "May", "June", "July", "August",
        "September", "October" "November", "December"],
    startdate = month[mm] + ", " + yyyy.toString();

结束日期类似于var enddate = startdate - 30; 显然这行不通。

因此,如果当前日期是 2011 年 12 月 30 日,我希望开始日期为 2011 年 12 月 1 日。

编辑:我的问题得到了回答……有点。 Date.today();Date.today().add(-30); 工作,但我需要January 13, 2012 格式的日期。不是Fri Jan 13 2012 10:48:56 GMT -055 (EST)。有什么帮助吗?

更多编辑:撰写本文时是 2018 年。只需使用 Moment.js。这是最好的。

【问题讨论】:

***.com/questions/563406/… 我认为这可能会有所帮助。 【参考方案1】:

要从 JS Date 对象中减去天数,您可以使用 setDate() 方法以及开始计算的日期。这将返回一个纪元时间戳作为整数,因此要将其转换为 Date 您需要再次将其提供给 Date() 对象构造函数。最后一个示例如下所示:

var today = new Date();
var priorDate = new Date(new Date().setDate(today.getDate() - 30));

console.log(today)
console.log(priorDate);

【讨论】:

不使用外部库我最喜欢这个解决方案。谢谢。 请注意,此方法以 Javascript Timestamp 格式返回。要将其转换回日期对象,您需要将上述内容传递给new Date(priorDate) 有时你只想要没有库的香草js!谢谢:) 我得到 setDate() 不是函数 @chovy 我能想象你得到这个错误的唯一方法是因为你没有在Date 对象上调用setDate()。但是,如果不查看您的代码,就无法进行诊断。【参考方案2】:

尝试使用优秀的Datejs JavaScript date library(原版不再维护,因此您可能对this actively maintained fork感兴趣):

Date.today().add(-30).days(); // or...
Date.today().add(days:-30);

[编辑]

另见优秀Moment.js JavaScript date library:

moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');

【讨论】:

我很难在没有时间的情况下获得今天前后 30 天的开始日期和结束日期。这有效:moment( moment().subtract(30, 'days') ).format("YYYY-MM-DD") 我使用了moment() 方法并附加了toDate() 方法来取回JavaScript 日期对象。谢谢! 为什么需要为此使用库?这似乎很疯狂。 你能推荐一个console.log的库吗? 第一个答案不起作用请检查此链接而不是***.com/questions/563406/add-days-to-javascript-date【参考方案3】:

这是一个丑陋的解决方案:

var date = new Date(new Date().setDate(new Date().getDate() - 30));

【讨论】:

搞笑的是,这是最好的解决方案。 同意 - 这是最好的解决方案。这完全是 Rory McCrossan 的答案的解决方案 - 但简洁、完整(不需要外部库)。 @MarkRogers “热闹”是正确的词。 JavaScript 日期真的很荒谬。 是的,这是一个简单且最佳的解决方案。 丑也可以优雅。这是?【参考方案4】:
startDate = new Date(today.getTime() - 30*24*60*60*1000);

.getTime() 方法返回一个标准 JS 时间戳(自 1970 年 1 月 1 日以来的毫秒数),您可以在该时间戳上使用常规数学运算,可以直接反馈给 Date 对象。

【讨论】:

【参考方案5】:

从今天开始获取下一个第 30 天

let now = new Date()
console.log('Today: ' + now.toUTCString())
let next30days = new Date(now.setDate(now.getDate() + 30))
console.log('Next 30th day: ' + next30days.toUTCString())

立即获取最近 30 天的表单

let now = new Date()
console.log('Today: ' + now.toUTCString())
let last30days = new Date(now.setDate(now.getDate() - 30))
console.log('Last 30th day: ' + last30days.toUTCString())

【讨论】:

【参考方案6】:

Javascript 可以在没有任何外部库的情况下处理它。

var today = new Date();
var dateLimit = new Date(new Date().setDate(today.getDate() - 30));

document.write(today + "<br/>" + dateLimit)

【讨论】:

【参考方案7】:

Simple 1 liner Vanilla Javascript 代码:

const priorByDays = new Date(Date.now() - days * 24 * 60 * 60 * 1000)

例如: days = 7 假设当前date = Fri Sep 18 2020 01:33:26 GMT+0530

结果将是:Fri Sep 11 2020 01:34:03 GMT+0530

这样做的美妙之处在于您可以对其进行操作以获得所需类型的结果

时间戳:Date.now() - days * 24 * 60 * 60 * 1000

ISOString:new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()

【讨论】:

【参考方案8】:

简单。(Using Vanilla JS)

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);

ISO 格式?

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();

【讨论】:

【参考方案9】:

我会更喜欢 moment js

startDate = moment().subtract(30, 'days').format('LL')  // January 29, 2015

endDate = moment().format('LL'); // February 28, 2015

【讨论】:

【参考方案10】:

let today = new Date()

let last30Days = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 30)

last30Days 将在日期对象中

【讨论】:

【参考方案11】:

我使用date.js。它可以轻松处理这个问题,并处理所有闰年的麻烦。

【讨论】:

【参考方案12】:

这是一个 ES6 版本

let date = new Date()
let newDate = new Date(date.setDate(date.getDate()-30))
console.log(newDate.getMonth()+1 + '/' + newDate.getDate() + '/' + newDate.getFullYear() )

【讨论】:

这与其他答案有何不同,例如this one?此外,这里没有什么是 ES5 或 ES3 无法完成的。【参考方案13】:

您可以使用 Node JS 中的 moment 简单地通过 1 行代码来做到这一点。 :)

    let lastOneMonthDate = moment().subtract(30,"days").utc().toISOString()

不想要 UTC 格式,更简单:P

    let lastOneMonthDate = moment().subtract(30,"days").toISOString()

【讨论】:

【参考方案14】:

如果你不倾向于momentjs,你可以使用这个:

let x = new Date()

x.toISOString(x.setDate(x.getDate())).slice(0, 10)

基本上它获取当前日期(当前月份日期的数值),然后设置该值。然后它转换成 ISO 格式,我从中切出纯数字日期(即 2019-09-23)

希望它对某人有所帮助。

【讨论】:

【参考方案15】:

使用 moment.js

let startDate =  moment().subtract(30, "days").format('YYYY-MM-DD'); //2021-05-18
let endDate = moment().format('YYYY-MM-DD'); //2021-06-17

【讨论】:

【参考方案16】:

对于寻找“dd 月 yyyy”格式的任何人,这对我有用:

let date = new Date()

let newDate = new Date(date.setDate(date.getDate()-30))

console.log(newDate.getDate()+ ' ' +newDate.toLocaleString('default', month: 'long') + ' ' + newDate.getFullYear() )

【讨论】:

如何选择所有日期排除今天前 30 天

】如何选择所有日期排除今天前30天【英文标题】:howtoselectalldateexclude30daysbeforetoday【发布时间】:2021-12-1905:34:03【问题描述】:SELECT*FROMtableWHEREINVOICE_DATE.....(30dayshavepassedsincetoday).....示例:今天=2021-11-052021-11-04非选择2021-10-07非... 查看详情

sql数据库怎么查询,between当前日期and当前日期前30天,之间的数据

...nbsp;GETDATE()) = 30)DATEDIFF(dd,[createTime],GETDATE())=30就是当前日期前30天参考技术A假设表里存储时间字段叫createTime;表名叫taselect*fromtawherecreateTime<sysdateandcreateTime>sysdate-30; 参考技术Bselect*from表where日期betweengetdate()anddateadd(dd... 查看详情

斯威夫特:在“特定日期”之前获得 30 天 [重复]

】斯威夫特:在“特定日期”之前获得30天[重复]【英文标题】:Swift:Get30daysbefore\'SpecificDate\'[duplicate]【发布时间】:2017-11-2502:49:56【问题描述】:我在显示具体日期时遇到了问题。在这种情况下,我的API(06/16/2015)中有一个随机... 查看详情

如何在特定日期前 2 天触发 UserNotifications

】如何在特定日期前2天触发UserNotifications【英文标题】:HowToTriggerUserNotifications2DaysBeforeSpecificDate【发布时间】:2017-08-2202:45:40【问题描述】:我之前尝试过UserNotification,但我知道我基于时间间隔,但我不知道如何根据日期触发... 查看详情

如何在 C# 中仅删除距当前日期 30 天以上的前 100 行? [关闭]

】如何在C#中仅删除距当前日期30天以上的前100行?[关闭]【英文标题】:HowtodeleteonlyTop100rowswhichareolderthan30daysfromcurrentdateinC#?[closed]【发布时间】:2021-11-0903:38:02【问题描述】:当我执行以下查询时,它在SSMS中正确执行,但代码... 查看详情

如何在codeigniter的当前日期插入天间隔?

】如何在codeigniter的当前日期插入天间隔?【英文标题】:Howtoinsertdayintervalincurrentdateincodeigniter?【发布时间】:2015-02-0920:37:32【问题描述】:我需要在表格中添加开始日期和结束日期。所以startdate应该是当前日期,而结束日期应... 查看详情

获取当前日期前多少天,或者格式化当前日期

以后用DateUtils这个 System.err.println(DateUtils.addDays(newDate(),-1)); System.err.println(DateUtils.addYears(newDate(),1)); try System.err.println(DateUtils.parseDate("2018-12-12",newString[]"yyyy-MM-dd")); catch(ParseExceptione) e.printStackTrace();    查看详情

在 where 子句中从当前日期减去 30 天

】在where子句中从当前日期减去30天【英文标题】:Subtract30daysfromcurrentdateinwhereclause【发布时间】:2019-04-2916:14:24【问题描述】:在我的where子句中,我只想获取具有今天日期和过去30天记录的记录。所以我想要3-29-19到4-29-19的记... 查看详情

查找日期是不是超过 30 天

...】:日期字符串如下所示2011-08-1917:14:40(年-月-日时:分:秒)如何知道日期是否早于当前日期超过30天?【问题讨论】:【参考方案1】:尝试使用这样的东西:if(strtotime(\'2011-08-1917:14:40\')<strtot 查看详情

当前日期缺失时的 30 天滚动/移动总和

】当前日期缺失时的30天滚动/移动总和【英文标题】:30-dayrolling/movingsumwhencurrentdateismissing【发布时间】:2016-04-2610:36:58【问题描述】:我有一个表(view_of_referred_events),它存储给定页面的访问者数量。datecountry_idreferralproduct_idvisi... 查看详情

Material Angular 6 DatePicker 正在解析我的日期前 1 天

...】:2018-11-1712:30:39【问题描述】:MaterialAngularDatePicker的当前版本发生了一些非常奇怪的事情,在我将它从A5更新到A6后,它开始在1天前解析我的日期,示例在这里:https://stackbl 查看详情

日期命令从特定日期返回 30 天

】日期命令从特定日期返回30天【英文标题】:Datecommandgobackto30daysfromaparticulardate【发布时间】:2016-06-1509:05:08【问题描述】:ADate=`date-d"10daysago"+%s`BDate=`date-d"$BDate-30days"+%s`它作为无效日期抛出错误。【问题讨论】:不适用于SLES1... 查看详情

sqlserver如何根据当前日期获得上月某一天的日期

...r(8),dateadd(month,0,getdate()),23)+'25',120)参考技术Asqlserver如何根据当前日期获得上月某一天的日期--根据当前时间查询上月26号的日期SELECTCONVERT(varchar(10),CONVERT(varchar(8),dateadd(month,-1,getdate()),23)+'26',120)--根据当前时间查询本... 查看详情

如何在给定日期前 14 天避免假期

】如何在给定日期前14天避免假期【英文标题】:Howtoget14dayspriortothegivendateavoidingholidays【发布时间】:2012-06-0710:01:00【问题描述】:在我的系统中,账单的到期日必须是开具日期之后的14天。我有截止日期,我想知道签发日期。... 查看详情

oracle获取当前日期前一个月的全部日期(代码片段)

   当前日期为2018/08/12。 1、获取当前月份的天数:selectto_number(to_char(last_day(sysdate),‘dd‘))fromdual2、获取当前日期前30天的全部日期。selecttrunc(sysdate-30)+rownumasdaysfromdualconnectbyrownum<=30;执行结果如下: 查看详情

如何从当前日期 PHP 获取最近 7 周、7 个月的日期范围?

】如何从当前日期PHP获取最近7周、7个月的日期范围?【英文标题】:Howtogetthelast7weeks,7monthsdaterangefromcurrentdatePHP?【发布时间】:2021-10-2004:45:50【问题描述】:如何获得从当前日期开始的最后七周/月的日期范围,我已经完成了过... 查看详情

javascript获得当前月份起止日期

上个周末就应该发的一篇博客,今天终于写出来了啊。获得当前月份的起始日期比较简单就是1号,而当前月份的最后一天需要通过计算获得。运行了代码如下: 查看详情

根据当前日期获取前 3 个月的数据 - MySQL

...rrentdate-MySQL【发布时间】:2011-09-2110:16:30【问题描述】:如何使用SQL语句获取前3个月的数据?例如,如果当前日期是01/01/2012,那么如何获取2011年12月、11月、2011年10月的数据?请有人指导我。【问题讨论】:【参考方案1】:SELE... 查看详情