草庐IT

momentjs获取上周、上月、前三个月的起始和结束时间--直接copy结尾代码

化尘埃 2023-06-11 原文

moment.js的使用

moment文档地址

1、要获取当前的日期和时间,只需调用不带参数的 moment() 即可。

var now = moment();

这基本上与调用 moment(new Date()) 相同。

2、可以通过传入字符串来创建时间

var day = moment("1995-12-25");

不同浏览器对字符串的解析格式会不一样,所以更换其他的浏览器可能会格式不一样。

如果知道输入字符串的格式,则可以使用它来解析 moment。

moment("12-25-1995", "MM-DD-YYYY");

年份、月份、日期的令牌
令牌区分大小写。

输入实例描述
YYYY20144 或 2 位数字的年份
YY142 位数字的年份
YY142 位数字的年份
Y-25带有任意数字和符号的年份
Q1…4年份的季度。将月份设置为季度的第一个月
MMM1…12 月份数字
MMM MMMMJan…December语言环境中的月份名称,由
D DD1…31月的某天
Do1st…31st月的某天,带序数
DDD DDDD1…365年的某天
X1410715640.579Unix 时间戳
x1410715640579Unix 毫秒时间戳

3、day()

moment().day(Number|String);
moment().day(); // 数字
moment().days(Number|String);
moment().days(); // 数字

获取或设置星期几。

此方法可用于设置星期几,其中星期日为 0、星期六为 6。

如果给定的值是 0 到 6,则结果的日期将会在当前(星期日至星期六)的星期。

如果超出范围,则它将会冒泡到其他星期。

moment().day(-7); // 上个星期日 (0 - 7)
moment().day(0); // 这个星期日 (0)
moment().day(7); // 下个星期日 (0 + 7)
moment().day(10); // 下个星期三 (3 + 7)
moment().day(24); // 从现在起第 3 个星期三 (3 + 7 + 7 + 7)

moment().day()是获取今天的时间

4、week()

moment().week(Number);
moment().week(); // 数字
moment().weeks(Number);
moment().weeks(); // 数字

moment().week();其实就是获取当前周是今年的第几周。
moment().week(Number)带参数的就是获取今年的第几周。

获取或设置年份的星期。
由于不同的语言环境对年份中的星期的编号的定义不同,因此 Moment.js 添加了 moment#week 以获取/设置年份的本地化星期。

年份的星期取决于哪一天是星期的第一天(星期日、星期一等),以及哪一周是年份的第一周。

例如,在美国,星期日是星期的第一天。 1 月 1 日所在的星期是年份的第一周。

在法国,星期一是星期的第一天,且 1 月 4 日是年份的第一周。

5、month()

moment().month(Number|String);
moment().month(); // 数字
moment().months(Number|String);
moment().months(); // 数字

moment().month()是获取当前是今年的几月
moment().month(参数)是获取当前参数是今年的几月

Number是月份
String是支持月份名称,比如

moment().month("January");

获取上i周的周一到周日:

const startDate = moment().week(moment().week() - i).startOf('week').add(1,'days').valueOf();
const endDate = moment().week(moment().week() - i).endOf('week').add(1,'days').valueOf();

获取上月的第一天和最后一天:

const startDate = moment().month(moment().month() - 1).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

获取前3个月的第一天和最后一天:

const startDate = moment().month(moment().month() - 3).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

获取前i个月的第一天和最后一天:

const startDate = moment().month(moment().month() - i).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

有关momentjs获取上周、上月、前三个月的起始和结束时间--直接copy结尾代码的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  3. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

    我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

  4. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  7. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  8. ruby - 获取模块中定义的所有常量的值 - 2

    我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c

  9. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  10. ruby-on-rails - 将 Ruby 中的日期/时间格式化为 YYYY-MM-DD HH :MM:SS - 2

    这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build

随机推荐