es6处理时间的函数

JavaScript:实现计算两个日期之间的天数算法(附完整源码) 阅读详情

转载于:https://panjiachen.github.io/vue-element-admin-site/#/

计算时间跨度

function pluralize(time, label) { // 时间戳以秒算, 分钟,小时,天数
    if (time === 1) {
        return time + label
    }
    return time + label + 's'
}

export function timeAgo(time) {
    const between = Date.now() / 1000 - Number(time)
    if (between < 3600) {
        return pluralize(~~(between / 60), ' minute')  // ~~ 运算符 把非数字类型转为数字类型 ~~123 == 123 是不变的
    } else if (between < 86400) {
        return pluralize(~~(between / 3600), ' hour')
    } else {
        return pluralize(~~(between / 86400), ' day')
    }
}

格式时间,变成具体的格式

export function parseTime(time, cFormat) { //time为时间戳 10位或13位 第二个参数变为时间样式
    if (arguments.length === 0) {
        return null
    }

    if ((time + '').length === 10) { // 如果数字的长度为10
        time = +time * 1000 // 取正,变为时间戳类型。由毫秒变为秒
    }

    const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
    let date
    if (typeof time === 'object') {
        date = time
    } else {
        date = new Date(parseInt(time))
    }
    const formatObj = {
        y: date.getFullYear(),
        m: date.getMonth() + 1,
        d: date.getDate(),
        h: date.getHours(),
        i: date.getMinutes(),
        s: date.getSeconds(),
        a: date.getDay()
    }
    const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
        let value = formatObj[key]
        if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
        if (result.length > 0 && value < 10) {
            value = '0' + value
        }
        return value || 0
    })
    return time_str
}

类似于发表时间

export function formatTime(time, option) { 
    // 第二个为时间样式,2天以内用 刚刚,分钟前,小时前来表示,如果超出了这些时间那么就返回具体的时间
    time = +time * 1000  // 时间戳 以秒算
    const d = new Date(time)
    const now = Date.now()

    const diff = (now - d) / 1000

    if (diff < 30) {
        return '刚刚'
    } else if (diff < 3600) { // less 1 hour
        return Math.ceil(diff / 60) + '分钟前'
    } else if (diff < 3600 * 24) {
        return Math.ceil(diff / 3600) + '小时前'
    } else if (diff < 3600 * 24 * 2) {
        return '1天前'
    }
    if (option) { 
        return parseTime(time, option)
    } else {
        return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
    }
}

千位数加,

  function toThousandslsFilter(num) {
        return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
    }
野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库) 以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。 阅读详情

相关推荐

ptrade量化策略之ST股弱转强,回测年化115%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强

qq_29301281的博客 1785

ES6实现小时,分钟,秒的加减

// 4、在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 // 具体要求如下: // 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second) // 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。再定义diaplay方法,用于将时间信息打印出来。 // 为MyTime类...

qq_41294224的博客 1843

别再只会setStyleSheet了!Qt实现背景透明的5种方法全解析(附性能对比)

本文深入解析Qt实现背景透明的5种高阶方案,包括QPalette、setWindowOpacity、QGraphicsOpacityEffect、样式表和复合透明方案,并提供详细的性能对比与优化建议。针对不同平台和场景,帮助开发者选择最适合的透明效果实现方式,提升UI设计质量与性能表现。

weixin_27061475的博客 259

js与es6中获取时间戳

在项目中经常会用到求时间戳的问题,下面是已经封装好的函数,直接使用就可以。1.js常用获取时间戳的方法 // 获取时间戳 var start = new Date().getTime(); console.log(start); var end = '1553321456632'; console.log(timediff(start,end)); function tim...

weixin_34336526的博客 2138

利用Python脚本生成IDA Pro许可证文件idapro.hexlic的完整指南

本文提供了一份详细的Python脚本指南,用于自动化生成IDA Pro的许可证文件idapro.hexlic。文章深入解析了脚本原理,包括构建许可证JSON、RSA密钥修补与签名生成机制,并附有完整的操作流程与常见问题排查,帮助逆向工程人员快速完成本地化许可部署。

weixin_29313547的博客 610

使用静态库在嵌入式系统中进行开发

静态库是一种包含预编译对象代码的文件,它可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。静态库是包含预编译对象代码的文件,可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。的静态库文件,可以在嵌入式系统的应用程序中使用它了。

ZrElixir的博客 201

ES6 关于时间的使用和推算

var valueTime = this.getTime(new Date()); console.log("valueTime", valueTime); var date = new Date(valueTime.replace(/-/g, '/')); let time3 = Date.parse(date); console.log("time3", time3); let aa = this.getTime(new Date(time3 - (10 * ..

qq_38946996的博客 1192

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力 (论文笔记+引入代码)。LSKNet能够动态调整其大的空间接收场,以更好地模拟遥感场景中各种对象的范围上下文。据我们所知,这是首次在遥感目标检测领域探索大型和选择性核机制。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 2864

在JavaScript中如何比较日期

但是,如果我们想比较特定的信息,如日、月等,我们可以使用其他日期方法,如getDate()、getHours()、和。date 对象允许我们使用>, =比较运算符进行比较,但不能使用相等比较运算符,如==,!注意:通过该getTime()方法,我们可以使用所有比较运算符执行所有形式的日期比较,即>、

xiaoweids的博客 510

[RK3568 Android11] 开发之蓝牙(AP6275S)

前言 蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。 接下来是在RK3568上调试AP6275S模块蓝牙部分: 一、设备树dts配置 根据硬件原理图,找到对应的控制引脚,配置好dts: ...

~未来可期~ 4072

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。

jasonj333 1159

像MySQL一样查询ES,困扰多年的问题终于解决了……

先简单介绍一下这个sql查询,因为社区一直反馈这个Query DSL 实在是太难用了。大家可以感受一下下面这个es的查询。"query": {"bool": {"must": ["bool": {],"range": {},"aggs": {"terms": {"size": 10},"aggs": {"avg": {这个查询使用了bool查询来组合多个条件,包括must、should和filter。同时也包含了聚合(aggs)来计算不同类别的平均价格。

weixin_44917365的博客 53

基于STM32、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计

/ 配置0: 使用内部参考电压(2.5V),增益128,双极性。// 配置通道0: AIN0+和AIN1-,使用配置0和滤波器0。// 100ms采样间隔。// 转换为电压值(使用内部2.5V参考电压)// 构造读命令: 最高位为1表示读,接下来7位是寄存器地址。// 构造写命令: 最高位为0表示写,接下来7位是寄存器地址。// 配置滤波器0: 输出数据率50Hz,后置滤波器4。

corlin6688的博客 528

JS面试题总结(含ES6)

部分内容来源于网络 主要内容包括:数据类型,变量和常量,数组和常用方法,本地存储,关于异步处理:Generator async promise 的区别,关于ES6兼容与优化 数据类型 1,介绍js的基本数据类型。 Undefined、Null、Boolean、Number、String 2,类型判断用到哪些方法? typeof typeof xxx...

cmy0816的博客 3万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ES6防抖及节流的方法

这两个函数可以帮助我们优化一些需要控制函数执行频率的场景,比如输入框输入验证、滚动事件处理等。1. 防抖函数(Debounce):在一定时间内,只执行最后一次触发的函数。2. 节流函数(Throttle):在一定时间内,固定间隔执行函数。ES6提供了防抖函数和节流函数来控制函数的执行频率。

一个努力不被优化的程序员 1409

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【ES6】Promise对象详解

【ES6】Promise对象详解一、Promise对象的含义二、Promise对象的用法三、Promise对象的几个应用【重点】1、时间延迟函数2、图片异步加载 引言:ES6新增的Generato、Promise、async都与异步编程有关。这里我们讲述Promise对象。 一、Promise对象的含义   所谓Promise就是一个对象,用来传递异步操作的消息。它代表了...

十一月廿七风雨大作 6944

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

javas时间函数

通过合理的时间管理方案,可以构建出高效可靠的日期相关功能模块。1. **月份陷阱**:getMonth() 返回值0-11。2. **时区问题**:服务器时间与本地时间同步策略。4. **夏令时处理**:使用UTC时间进行关键计算。3. **性能优化**:避免高频创建Date对象。5. **日期比较**:推荐使用时间戳比较法。### 1.2 时间信息获取方法。## 三、ES6 新增时间方法。### 2.1 时间设置方法。### 2.2 时间格式转换。### 4.2 时区转换公式。

xxx060214的博客 399

ES6模块化export异步导出数据

ES6模块化export异步导出数据,实现的方式。 当我们尝试在js中使用export导出异步的数据时,会发现输出的是异步前的结果。 //export.js let asyData = [1, 2, 3] setTimeout(function () { asyData = [3, 2, 1] }, 2000); export { asyData } //import.js import { asyData } from "./export.js"; console.log( as

伟深么的博客 4176

ES6系列之装饰器

一、简介 装饰器依赖于ES5的Object.defineProperty方法 1.1 Object.defineProperty Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象 该方法允许精确添加或修改对象的属性。通过赋值来添加的普通属性会创建在属性枚举期间显示的属性(for...in或Ob...

十年代码写十年 634

ES6中 map遇到的问题

今天在做一个时间处理的时候用到了foreach ,然后就想说能不能用map来遍历 然后发现了这么个东西 很多介绍map的教程是这么说的 const integers = [1, 2, 3, 4, 6, 7]; const twoXIntegers = integers.map(i => i*2); // twoXIntegers are now [2, 4, 6, 8, 12, 14] /

李嘉杰的博客 1908

ES6实例题

二、 2.读入数据 代码如下(示例):

m0_75051508的博客 213

拥抱ES6 (一)

拥抱ES6 (一)

冷月心的博客 943

JS Date 时间、时间戳转换总结

1. 标准时间戳 yyyy-MM-dd HH-mm-ss 2017-09-28 11:22:57function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); var m = date.getMonth() + 1;

alokka的博客 524

十三:以理论结合实践方式梳理前端 ES 6+ ——— ES 6+ 事件处理

ES 6+ 事件处理

味十三 399

js 异步函数讲解: Promise、async和await示例

ECMAScript 2015,也称为 ES6,引入了 JavaScript Promise 对象,用于异步执行运行时间较长的任务。有两种方式来实现异步编程: 一是使用Promise对象,二是使用async关键字 使用Promise对象 基本用法如下: /** * 使用Promise对象执行一个任务...

一名高级工程师的博客 590

js 内置的Date是构造函数 还是类

尽管Date在 JavaScript 中被实现为构造函数,并且其方法定义在原型上,但从 ES6 开始引入的类语法提供了一种更加面向对象的方式来定义和使用对象。Date本身并不是一个类,但你可以使用类的语法来创建类似的功能。在日常开发中,使用Date构造函数及其原型方法可以轻松地处理日期和时间相关的任务。

ivan5277的博客 509
上一篇: 学习vue后台管理框架4(主体)
下一篇: vue 学习(1)
han_hanker
博客等级 码龄13年 35粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值