1 /**
2 * Parse the time to string
3 * @param {(Object|string|number)} time
4 * @param {string} cFormat
5 * @returns {string | null}
6 */
7 export function parseTime(time, cFormat) {
8 if (arguments.length === 0 || !time) {
9 return null
10 }
11 const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
12 let date
13 if (typeof time === 'object') {
14 date = time
15 } else {
16 if ((typeof time === 'string')) {
17 if ((/^[0-9]+$/.test(time))) {
18 // support "1548221490638"
19 time = parseInt(time)
20 } else {
21 // support safari
22 // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
23 time = time.replace(new RegExp(/-/gm), '/')
24 }
25 }
26
27 if ((typeof time === 'number') && (time.toString().length === 10)) {
28 time = time * 1000
29 }
30 date = new Date(time)
31 }
32 const formatObj = {
33 y: date.getFullYear(),
34 m: date.getMonth() + 1,
35 d: date.getDate(),
36 h: date.getHours(),
37 i: date.getMinutes(),
38 s: date.getSeconds(),
39 a: date.getDay()
40 }
41 const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
42 const value = formatObj[key]
43 // Note: getDay() returns 0 on Sunday
44 if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
45 return value.toString().padStart(2, '0')
46 })
47 return time_str
48 }
49
50 /**
51 * @param {number} time
52 * @param {string} option
53 * @returns {string}
54 */
55 export function formatTime(time, option) {
56 if (('' + time).length === 10) {
57 time = parseInt(time) * 1000
58 } else {
59 time = +time
60 }
61 const d = new Date(time)
62 const now = Date.now()
63
64 const diff = (now - d) / 1000
65
66 if (diff < 30) {
67 return '刚刚'
68 } else if (diff < 3600) {
69 // less 1 hour
70 return Math.ceil(diff / 60) + '分钟前'
71 } else if (diff < 3600 * 24) {
72 return Math.ceil(diff / 3600) + '小时前'
73 } else if (diff < 3600 * 24 * 2) {
74 return '1天前'
75 }
76 if (option) {
77 return parseTime(time, option)
78 } else {
79 return (
80 d.getMonth() +
81 1 +
82 '月' +
83 d.getDate() +
84 '日' +
85 d.getHours() +
86 '时' +
87 d.getMinutes() +
88 '分'
89 )
90 }
91 }
const start = new Date()
formatTime(start, '{y}-{m}-{d}', 0)


时间格式转换成指定格式(Vue)的更多相关文章

  1. javascript时间戳转换成指定格式的日期

    //时间戳转换成指定格式的日期DateTool.IntDatetimeTo = function(time, format){    var testDate = new Date(time);    ...

  2. linux环境下deb格式 转换成rpm格式

    linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...

  3. 怎样将M4A音频格式转换成MP3格式

    因为MP3音频格式应用的广泛性,所以很多时候我们都需要将不同的音频格式转换成MP3格式的,那么如果我们需要将M4A音频格式转换成MP3格式,我们应该怎样进行实现呢?下面我们就一起来看一下吧. 操作步骤 ...

  4. 分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

  5. 怎样将flac音频格式转换成MP3格式

    Flac音频格式怎样转换成MP3格式呢?随着现在音频格式的不断多样性,生活中很多时候我们都会遇到音频格式转换的问题,如flac音频转MP3的问题,那么我们应该如何去解决这个问题呢?下面我们就一起去来一 ...

  6. windwos文档格式转换成unix格式

    在工作学习中我们避免不了需要将一些脚本和命令记录在笔记里面,我使用的是有道云笔记,每当我将上次记录在有道云的脚本复制出来进行使用的时候,总会报一些奇怪的错误,要么是包含换行符,要么就是格式不对,但是我 ...

  7. 将ERF格式转换成PCAP格式

    在研究网络流量分析的时候,wireshark默认采用pcap格式.对于用Endace DAG捕捉卡捕获的数据包,一般来说,都是erf格式的.一般来说,此种格式包含了更多了链路层信息.而我们采用wire ...

  8. 把#define宏转换成指定格式

    之前在弄一个东西的,有一大堆的宏,需要把它转换成其它的形式.遇到这种大批量的东西,我特别没有耐心去一个一个的弄,于是写了一段代码. 估计大家平常比较难用得上,不过可以平常相似的情况用来参考. Sort ...

  9. dos2unix 将DOS格式转换成NUIX格式

    1.命令功能 dos2unix将windows文件格式转换成unix文件格式. 2.语法格式 dos2unix  file 3.使用范例 [root@localhost ~]# dos2unix wi ...

  10. jquery将日期转换成指定格式的字符串

    引用jquery文件,如<script type="text/javascript" src="jquery-1.8.3.min.js"></ ...

随机推荐

  1. 读后笔记 -- Python 全栈测试开发 Chapter10:接口的设计与开发

    10.1 Django 框架 1. 几个主流的框架: 1)适合初学者的接口框架:Django,Flask 2)针对底层定义:Twisted 3)实现高并发:Tornado 2. install // ...

  2. ansible笔记第三章(Ansible--tasks任务控制)

    (1)when判断语句 实践案例一.根据不同操作系统,安装相同的软件包 [root@m01 project1]# cat tasks_1.yml - hosts: oldboy tasks: - na ...

  3. Redis后端面试题

    目录 简要说一下什么是Redis? 为什么要⽤Redis(缓存)? 为什么要⽤Redis⽽不⽤map/guava做缓存? Redis与Memcached的区别 Redis的应⽤场景 redis为什么那 ...

  4. Navicate破解安装

    1.安装Navicate客户端     2. 注意安装完毕不要打开navicate,打开后后面可能出现rsa public key not found之类的错误,直接点击注册机,选择版本,点击patc ...

  5. Unity 凹多边形三角剖分

    游戏中需要实现一个小功能,显示一个玩家的能力图,这个图是一个有6个顶点任意摆放组合的多边形.而绘制多边形主要用到的知识就是Mesh构建,mesh的构建主要需要顶点列表,三角形列表,法线列表.uv列表等 ...

  6. Mac下Virtual Box 6.1 Host-Only 网络配置 没有虚拟网卡

    Virtual Box 6.1 mac下 Virtual Box Host-Only 没有 vboxnet0 点击 tools -> 右边的三杆,点 Network 可以添加,修改,删除  虚拟 ...

  7. R7-1 求10个点到原点的距离和

    R7-1 求10个点到原点的距离和 分数 15 全屏浏览题目 切换布局 作者 张高燕 单位 浙大城市学院 求10个点到原点的距离和.输入10个点的坐标,计算并输出这些点到原点的距离和.定义函数dist ...

  8. MySQL之中文数据问题

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  9. Software--电商平台系统--P2 支撑基础设施 Infrastructure

    2018-01-11  18:19:49 架构 客户体验 Ajax 交互技术. 网站快速加载且响应灵敏,则应该缓存商品数据. 灵活的缓存机制,以支持任何类型的存储(即分布式存储或内存中存储). 日志功 ...

  10. Filament初探,全场景性能测试

    一直很想研究下Filament在移动端全场景(大约20万Triangle,约120个渲染实体)的实时帧率.终于在今天有时间腾出来研究下Filament在Android上的全场景PBR渲染性能. 这里以 ...