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 ...
- 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的日期格式化算法示例
一个JS的日期格式化算法. 例子: <script> /** * Js日期格式化算法实例 * by www.jbxue.com */ function dateFormat(date, f ...
- 分享自己写的JS版日期格式化和解析工具类,绝对好用!
前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, ...
- js Date 日期格式化(转)
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1 ...
随机推荐
- sql查询字段语句
SELECT * from jd_content where 景点简介 like '%东城%'
- delete,drop,truncate 区别
今天看到一篇关于delete.drop.truncate区别的文章,认为写得非常好,转过来. 打比方很形象. delete,drop,truncate 都有删除表的作用,区别在于: 1.delete ...
- opencv官宣
opencv官方文档地址 https://docs.opencv.org/master/ 安装opencv(cv2)官方地址 https://pypi.org/project/opencv-pytho ...
- windows 10玩mysql 8
注意事项: 1)windows 10只支持两个版本: 5.7,8.0 2)安装有两种方式,zip与installer,建议用zip方式,因为installer要安装许多依赖,如vision c++等, ...
- 『Python』多进程
Python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在Python中大部分情况需要使用多进程.Python提供了multiprocessin ...
- Spring Cloud Gateway 没有链路信息,我 TM 人傻了(下)
本系列是 我TM人傻了 系列第五期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了 获取异 ...
- P7324-[WC2021]表达式求值【dp】
正题 题目链接:https://www.luogu.com.cn/problem/P7324 题目大意 给一个只包含\(m\)个值的表达式,\(<\)表前后取最小值,\(>\)表前后取最大 ...
- WPF进阶技巧和实战03-控件(5-列表、树、网格01)
列表控件 ItemsControl为列表项控件定义了基本功能,下图是ItemsControl的继承关系: 在继承自ItemsControl类的层次结构中,还显示了项封装器(MenuItem.TreeV ...
- 实验2:Open vSwitch虚拟交换机实践
作业链接:实验2:Open vSwitch虚拟交换机实践 一.实验目的 能够对Open vSwitch进行基本操作: 能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表: 能 ...
- FastAPI(58)- 使用 OAuth2PasswordBearer 的简单栗子
背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名 ...