封装一个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实现日期格式化封装--八种的更多相关文章

  1. js实现日期格式化封装-八种格式

    封装一个momentTime.js文件,包含8种格式. 需要传两个参数: 时间戳:stamp 格式化的类型:type, 日期补零的方法用到es6语法中的padStart(length,'字符'): 第 ...

  2. AngularJS的日期格式化有两种形式

    AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expression 即 你在$scope ...

  3. 一个JS的日期格式化算法示例

    一个JS的日期格式化算法. 例子: <script> /** * Js日期格式化算法实例 * by www.jbxue.com */ function dateFormat(date, f ...

  4. MVC日期格式化的2种方式

    原文:MVC日期格式化的2种方式 假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System; using System. ...

  5. js前端日期格式化处理

    js前端日期格式化处理 1.项目中时间返回值,很过时候为毫秒值,我们需要转换成 能够看懂的时间的格式: 例如: ​ yyyy-MM-dd HH:mm:ss 2.处理方法(处理方法有多种,可以传值到前端 ...

  6. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  7. (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  8. 分享自己写的JS版日期格式化和解析工具类,绝对好用!

    前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, ...

  9. js Date 日期格式化(转)

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

随机推荐

  1. PHP没有定时器?

    确实,PHP没有类似于JS中的setInterval或者setTimeout这样的原生定时器相关的函数.但是我们可以通过其他方式来实现,比如使用declare. 先来看看是如何实现的,然后我们再好好学 ...

  2. CentOS下安装libmcrypt失败

    libmcrypt是什么?? 是加密算法扩展库---支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SA ...

  3. Docker DevOps实战:GitLab+Jenkins(2)- CI/CD相关配置

    Jenkins关联GitLab Gitlab仓库配置Webhooks 上传项目到GitLab,Jenkins构建

  4. Windows Server 2008 系统加固

    账号安全:更改管理员账号 更改管理员账户名来避免攻击,提高系统安全性. 以Administrator账户登录本地计算机,开始->运行->compmgmt.msc(计算机管理)->本地 ...

  5. sonar-scanner的使用

    在服务器搭建sonarqube后,本地的windows个人电脑如何使用sonar-scanner? 在服务器搭建sonarqube后,每个人都可以在本地使用sonar-scanner扫描代码. son ...

  6. [转载]linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH)

    http://blog.chinaunix.net/uid-354915-id-3568853.html PATH:  可执行程序的查找路径查看当前环境变量:echo $PATH设置: 方法一:exp ...

  7. Loj#3026-「ROIR 2018 Day1」管道监控【Trie,费用流】

    正题 题目链接:https://loj.ac/p/3026 题目大意 给出\(n\)个点的一棵外向树,然后\(m\)个字符串和费用表示你每次可以花费这个费用覆盖路径字符串和给出字符串相等的路径,求覆盖 ...

  8. P4292-[WC2010]重建计划【长链剖分,线段树,0/1分数规划】

    正题 题目链接:https://www.luogu.com.cn/problem/P4292 题目大意 给出\(n\)个点的一棵树,然后求长度在\([L,U]\)之间的一条路径的平均权值最大. 解题思 ...

  9. Liunx下Mysql,MongoDB性能优化的配置

    场景 这几天在赶十一上线的项目,但是突然发现接口性能不好,高并发支持不住.又不想改代码,就在数据库层面进行优化. Mysql 分区:项目中有对40万条的数据进行时间查询的要求,就算对DateTime建 ...

  10. SDOI2015 排序

    SDOI2015 排序 今天看到这道题,没有一点思路,暴力都没的打...还是理解错题意了,操作不同位置不是说改不同的区间,而是不同操作的顺序...考场上如果知道这个的话最少暴力拿一半啊,因为正解本来就 ...