草庐IT

vue使用moment插件,根据指定时间获取时间戳

可爱的狼 2023-04-25 原文

1.安装

npm install moment
2.引入

import moment from "moment";
3.常用的

获取指定日期的时间戳:
moment('2020-07').startOf('day').format('x')
当前月:
moment().format('MM')
 
当前季度:
moment().quarter()
 
当前年:
moment().format("YYYY") 
moment().year(); // Number
 
上一年/下一年:
 1. 上一年 : moment().add(-1,'Q').format("YYYY")
 2. 下一年 : moment().add(1,'Q').format("YYYY")
 3.  上几年和下几年同理,做moment日期加减,月季度亦同理
 
上一季度/下一季度:
 1. 上一季度:moment().add(-1, 'Q').quarter()
 2. 下一季度:moment().add(1, 'Q').quarter()
 
上个月/下个月
 1. 上个月:momnet().add(-1,'M').format("MM")
 2. 下个月:moment().add(1,'M').format("MM")
 
年开始结束时间:
 1. moment().startOf('year')
 2. moment().endOf('year')
 
季度开始结束时间:
 
 1. 当前季度的开始结束时间:
  moment().startOf('quarter').format("YYYY-MM-DD")
  moment().endOf('quarter').format("YYYY-MM-DD")
 
 2. 指定年指定季度的开始结束时间:(某年某季度的开始结束时间)
 
  moment(moment().format("YYYY-02-        01")).startOf('quarter').format("YYYY-MM-DD")
  moment(moment().format("YYYY-02-01")).endOf('quarter').format("YYYY-MM-DD")
 
#当天0点的时间格式 :
  moment().startOf('day').format('YYYY-MM-DD HH:mm:ss') 
 
#当天0点的时间缀,以10位Unix时间戳输出(秒):
  moment().startOf('day').format('X') 
 
#当天23点59分59秒的时间格式:
  moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')  
 
#当天23点59分59秒以13位Unix时间戳输出(毫秒):
  moment().endOf('day').format('x')  
 
#2020-06-30当天0点的以13位Unix时间戳输出(毫秒):
  moment('2020-06-30').startOf('day').format('x')  
 
#2020-06-30当天24点的以13位Unix时间戳输出(毫秒):
  moment('2020-06-30').endOf('day').format('x') 
# 获取今天0时0分0秒
moment().startOf('day')
 
# 获取本周第一天(周日)0时0分0秒
moment().startOf('week')
 
# 获取本周周一0时0分0秒
moment().startOf('isoWeek')
 
# 获取当前月第一天0时0分0秒
moment().startOf('month')
 
# 获取指定日期的0时0分0秒
moment('2019-10-20').startOf('day')
 
# 获取今天23时59分59秒
moment().endOf('day')
 
# 获取本周最后一天(周六)23时59分59秒
moment().endOf('week')
 
# 获取本周周日23时59分59秒
moment().endOf('isoWeek')
 
# 获取当前月最后一天23时59分59秒
moment().endOf('month')
 
# 获取当月第一天是星期几(用于设置星期几,其中星期日为 0、星期六为 6)
moment().startOf('month').day()
 
获取前n天 / 后n天
moment().add(7, 'days');
moment().subtract(7, 'days')
 
比较两个时间的大小
 
# 第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
 
moment('2010-10-31').isBefore('2010-12-31', 'day');
# true
 
moment('2010-10-20').isBefore('2010-12-31', 'year');
# false
 
moment('2010-10-20').isAfter('2009-12-31', 'year'); 
# true
 
moment('2010-10-20').isSame('2009-12-31', 'year'); 
# 判断两个时间是否相等
 
# 需要注意的是, isBefore与isAfter 都是开区间,如果想使用闭区间,应使用
isSameOrBefore
 
两个时间的相差几天
moment([2008, 2, 27]).diff([2007, 0, 28], 'day');
# 424
 
是否是闰年
 
moment().isLeapYear();
# true
 
moment([2001]).isLeapYear() 
# false
 
获取 月份和星期 枚举列表
 
moment.months()
 
# ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
 
moment.monthsShort()
# ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
 
moment.weekdays()
# ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
 
moment.weekdaysMin()
# ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
 
格式化
moment().format();
# 2020-03-14T19:14:05+08:00
 
moment().format('YYYY-MM-DD HH:mm:ss');
# 2020-03-14 19:23:29
 
//获取当前时间
var now = moment().toDate();//Mon Jul 06 2020 13:50:51 GMT+0800 (中国标准时间)
console.log(now)
 
//格式化当前时间
now = moment().format('YYYY-MM-DD');//2020-07-06
console.log(now);
 
//获取这个月初时间
let startMonth = moment().startOf('month').toDate();
console.log(startMonth);
 
//获取今天开始的时间,
let dayOfStart = moment().startOf('day').toDate();
console.log(dayOfStart);
 
//获取今天结束的时间
let dayOfEnd = moment().endOf('day').toDate();
console.log(dayOfEnd);
 
 
//获取+n小时
let lateHour = moment().add(2,'hour').toDate();
console.log(lateHour);
 
//获取+n小时
console.log('//获取-n小时')
let beforeHour = moment().subtract(2,'hour').toDate();
console.log(beforeHour);
 
 
//获取+n天
let lateDay = moment().add(+5,'day').toDate();
console.log(lateDay);
 
//获取-n天
let beforeDay = moment().add(-5,'day').toDate();
console.log(beforeDay);
//也可以表示为
beforeDay = moment().subtract(5,'day').toDate();
console.log(beforeDay);
 
console.log('//获取+n月')
let lateMonth = moment().add(2,'month').toDate();
console.log(lateHour);
 
//获取+n月
let beforeMonth = moment().subtract(2,'month').toDate();
console.log(lateHour);
 
 
 
//获取星期
let week = moment().format('dddd');
console.log(week);
 
//获取到现在的年限 如果不满一年显示出具体几个月
let years = moment('2020-12-31').fromNow();
前三个月(自然月):
 
moment().month(moment().month() - 3).startOf('month')
 
moment().month(moment().month() - 1).endOf('month')
 
上月:
 
moment().month(moment().month() - 1).startOf('month')
 
moment().month(moment().month() - 1).endOf('month')
 
本月:
 
[moment().startOf('month'), moment().endOf('month')]
 
7天:
 
[moment().subtract(7,'day'), moment()]
 
获取月份天数:
 
moment().daysInMonth()
 
判断日期大小
 
moment('2010-10-20').isAfter('2010-10-19'); // true
 
 
 

关于封装

在tool.js文件中引入
import moment from "moment"

封装项目中常用的日期转换格式的函数

//--------------------------封装一些常用的函数-----------------------
import moment from "moment";
 
// 短时间
export const shortTime = function (value, formater = "YYYY-MM-DD") {
  return moment(value).format(formater);
};
 
// 长时间
export const time = function (value, formater = "YYYY-MM-DD HH:mm:ss") {
  return moment(value).format(formater);
};
 
// 长时间
export const time1 = function (value, formater = "YYYY/MM/DD HH:mm:ss") {
  return moment(value).format(formater);
};
 
export const leaveTime = function (value) {
  return moment(value).format("YYYY-MM-DD HH:mm");
};
 
// 短时间
export const monthTime = function (value) {
  return moment(value).format("YYYY-MM");
};
 
// 短时间1
export const monthTime1 = function (value) {
  return moment(value).format("YYYY/MM");
};
 
// 短时间2
export const monthTime2 = function (value) {
  return moment(value).format("YYYY-MM-DD");
};
 
// 每月第一天
export const monthOne = function (value) {
  return moment(value).format("YYYY-MM-01");
};
// 每月第一天精确
export const monthOnes = function (value) {
  return moment(value).format("YYYY-MM-01 00:00:00");
};
// 补全00:00:00
export const addZero = function (value) {
  return moment(value).format("YYYY-MM-DD 00:00:00");
};
// 月数
export const MonTime = function (value) {
  return moment(value).format("MM");
};
// 天数
export const dayTime = function (value) {
  return moment(value).format("DD");
};
// 时分秒
export const secondsTime = function (value) {
  return moment(value).format("HH:mm:ss");
};
 
export const secondShortTime = function (value) {
  return moment(value).format("HH:mm");
};

使用:

import { shortTime, time } from "@/utils/tool";
let date =  new Date()          
    console.log(date)
    console.log(shortTime(date))      //短时间
    console.log(time(date))           //长时间

有关vue使用moment插件,根据指定时间获取时间戳的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐