1、要获取当前的日期和时间,只需调用不带参数的 moment() 即可。
var now = moment();
这基本上与调用 moment(new Date()) 相同。
2、可以通过传入字符串来创建时间
var day = moment("1995-12-25");
不同浏览器对字符串的解析格式会不一样,所以更换其他的浏览器可能会格式不一样。
如果知道输入字符串的格式,则可以使用它来解析 moment。
moment("12-25-1995", "MM-DD-YYYY");
年份、月份、日期的令牌
令牌区分大小写。
| 输入 | 实例 | 描述 |
|---|---|---|
| YYYY | 2014 | 4 或 2 位数字的年份 |
| YY | 14 | 2 位数字的年份 |
| YY | 14 | 2 位数字的年份 |
| Y | -25 | 带有任意数字和符号的年份 |
| Q | 1…4 | 年份的季度。将月份设置为季度的第一个月 |
| M | MM | 1…12 月份数字 |
| MMM MMMM | Jan…December | 语言环境中的月份名称,由 |
| D DD | 1…31 | 月的某天 |
| Do | 1st…31st | 月的某天,带序数 |
| DDD DDDD | 1…365 | 年的某天 |
| X | 1410715640.579 | Unix 时间戳 |
| x | 1410715640579 | Unix 毫秒时间戳 |
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();
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
在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
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
有没有办法在这个简单的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
这里有一个很好的答案解释了如何在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返回它复制的字节数,但是当我还没有下
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我有一个存储主机名的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
我想获取模块中定义的所有常量的值: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
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
这个问题在这里已经有了答案: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