关键词:
【中文标题】如何获得当前日期前 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... 查看详情