js实现日期格式化封装--八种
封装一个momentTime.js文件,包含8种格式.
需要传两个参数:
- 时间戳:stamp
- 格式化的类型:type,
日期补零的方法用到es6语法中的padStart(length,‘字符’):
- 第一个参数是指定生成的字符串的最小长度,
- 第二个参数是用来补全的字符串。
- 如果没有指定第二个参数,默认用空格填充。
需要注意的是需要将获取到的年月日转为字符串,可以直接拼接一个引号。
padStart()方法,padEnd()方法
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
ios兼容问题
使用 new Date(date).getTime() 转化成时间戳(格式:YYYY-mm-dd HH:MM:SS)
- 在android系统上可以正常获取到, 但是再ios系统上得到确是NaN。
- ios不兼职 yyyy-MM-dd HH:mm:ss 这种时间格式
- 解决:需要把-替换成 /,如 yyyy/MM/dd HH:mm:ss这种格式。
解决:new Date(date.replace(/-/g,’/’)).getTime();
function getTimeObj(time) {
let newdata = new Date(time)
let y = newdata.getFullYear()
let m = newdata.getMonth() + 1
let d = newdata.getDate()
let hh = newdata.getHours()
let mm = newdata.getMinutes()
let ss = newdata.getSeconds()
return {
y,
m,
d,
hh,
mm,
ss
}
}
/*
type:0 =>2021-09-12 默认
type:1 =>2021-09-12 10:34:12
type:2 =>09-12 10:34:12
type:3 =>09-12
type:4 =>2021/09/12
type:5 =>2021/09/12 10:34:12
type:6 =>09/12 10:34:12
type:7 =>09/12
*/
function filterTime(stamp, type = 0) {
let str = stamp
if (stamp && stamp.indexOf('-') > 0) {
str = new Date(stamp.replace(/-/g, '/')).getTime()
}
let date = new Date(str)
let y = date.getFullYear();
let m = (date.getMonth() + 1 + '').padStart(2, '0');
let d = (date.getDate() + '').padStart(2, '0');
let hh = (date.getHours() + '').padStart(2, '0')
let mm = (date.getMinutes() + '').padStart(2, '0')
let ss = (date.getSeconds() + '').padStart(2, '0')
let time;
switch (type) {
case 0:
time = `${y}-${m}-${d}`;
break;
case 1:
time = `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
break;
case 2:
time = `${m}-${d} ${hh}:${mm}:${ss}`;
break;
case 3:
time = `${m}-${d}`;
break;
case 4:
time = `${y}/${m}/${d}`;
break;
case 5:
time = `${y}/${m}/${d} ${hh}:${mm}:${ss}`;
break;
case 6:
time = `${m}/${d} ${hh}:${mm}:${ss}`;
break;
case 7:
time = `${m}/${d}`;
break;
}
return time;
}
module.exports = { getTimeObj, filterTime }
js实现日期格式化封装--八种的更多相关文章
- js实现日期格式化封装-八种格式
封装一个momentTime.js文件,包含8种格式. 需要传两个参数: 时间戳:stamp 格式化的类型:type, 日期补零的方法用到es6语法中的padStart(length,'字符'): 第 ...
- AngularJS的日期格式化有两种形式
AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expression 即 你在$scope ...
- 一个JS的日期格式化算法示例
一个JS的日期格式化算法. 例子: <script> /** * Js日期格式化算法实例 * by www.jbxue.com */ function dateFormat(date, f ...
- MVC日期格式化的2种方式
原文:MVC日期格式化的2种方式 假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System; using System. ...
- js前端日期格式化处理
js前端日期格式化处理 1.项目中时间返回值,很过时候为毫秒值,我们需要转换成 能够看懂的时间的格式: 例如: yyyy-MM-dd HH:mm:ss 2.处理方法(处理方法有多种,可以传值到前端 ...
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- 分享自己写的JS版日期格式化和解析工具类,绝对好用!
前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, ...
- js Date 日期格式化(转)
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1 ...
随机推荐
- 建立 F103C8T6 HAL库 Makefile FreeRTOS 工程
F103C8T6 HAL库 Makefile FreeRTOS 工程模板 环境 该工程的开发平台为 ARM-GCC 工具链和 Make > arm-none-eabi-gcc -v gcc ve ...
- Park-2018论文
太阳射电图:Solar magnetograms, EUV images, GOES X-ray flux data. Magnetograms: http://solar-center.sta ...
- 一文让你彻底理解SQL关联子查询
员工表的主要信息: 需求:检索工资大于同职位的平均工资的员工信息. 直觉的做法 员工多,而相应的职位(如销售员.经理.部门经理等)少,因此首先想到的思路是对职位分组,这样就能分别得到各个职位的平均工资 ...
- P4100-[HEOI2013]钙铁锌硒维生素【矩阵求逆,最大匹配】
正题 题目链接:https://www.luogu.com.cn/problem/P4100 题目大意 给出\(n\)个线性无关的向量\(A_i\),然后给出\(n\)个向量\(B_i\),求一个字典 ...
- IDEA连接Mysql数据库之后,在Mapper.xml编写SQL时不会自动提示表信息问题(非常详细!)
1.首先得连接上数据库 (一)点击IDEA右侧数据库模块 (二)选择MySql进行连接 (三)填写数据库相关配置 (四)重点!!! 这个时候点击测试连接是连接不上的,需要设置时区 (按照如下设置) ( ...
- vue使用AES.js
AES加密的使用 对数据传输加密.解密处理---AES.js 第一步: 在vue中安装crypto-js依赖 npm install crypto-js --save-dev 第二步: 在static ...
- nginx禁止IP访问系统
server { listen 80 default; server_name _; if ($host ~ "\d+\.\d+\.\d+\.\d") { return 404; ...
- vue3 专用 indexedDB 封装库,基于Promise告别回调地狱
IndexedDB 的官网 https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API 这个大概是官网吧,原始是英文的,现在陆续是出中 ...
- 超详细的Ribbon源码解析
Ribbon简介 什么是Ribbon? Ribbon是springcloud下的客户端负载均衡器,消费者在通过服务别名调用服务时,需要通过Ribbon做负载均衡获取实际的服务调用地址,然后通过http ...
- Billu_b0x内网渗透-vulnhub
个人博客:点我 本次来试玩一下vulnhub上的Billu_b0x,只有一个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶场 ...