封装一个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();

  1. function getTimeObj(time) {
  2. let newdata = new Date(time)
  3. let y = newdata.getFullYear()
  4. let m = newdata.getMonth() + 1
  5. let d = newdata.getDate()
  6. let hh = newdata.getHours()
  7. let mm = newdata.getMinutes()
  8. let ss = newdata.getSeconds()
  9. return {
  10. y,
  11. m,
  12. d,
  13. hh,
  14. mm,
  15. ss
  16. }
  17. }
  1. /*
  2. type:0 =>2021-09-12 默认
  3. type:1 =>2021-09-12 10:34:12
  4. type:2 =>09-12 10:34:12
  5. type:3 =>09-12
  6. type:4 =>2021/09/12
  7. type:5 =>2021/09/12 10:34:12
  8. type:6 =>09/12 10:34:12
  9. type:7 =>09/12
  10. */
  11. function filterTime(stamp, type = 0) {
  12. let str = stamp
  13. if (stamp && stamp.indexOf('-') > 0) {
  14. str = new Date(stamp.replace(/-/g, '/')).getTime()
  15. }
  16. let date = new Date(str)
  17. let y = date.getFullYear();
  18. let m = (date.getMonth() + 1 + '').padStart(2, '0');
  19. let d = (date.getDate() + '').padStart(2, '0');
  20. let hh = (date.getHours() + '').padStart(2, '0')
  21. let mm = (date.getMinutes() + '').padStart(2, '0')
  22. let ss = (date.getSeconds() + '').padStart(2, '0')
  23. let time;
  24. switch (type) {
  25. case 0:
  26. time = `${y}-${m}-${d}`;
  27. break;
  28. case 1:
  29. time = `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
  30. break;
  31. case 2:
  32. time = `${m}-${d} ${hh}:${mm}:${ss}`;
  33. break;
  34. case 3:
  35. time = `${m}-${d}`;
  36. break;
  37. case 4:
  38. time = `${y}/${m}/${d}`;
  39. break;
  40. case 5:
  41. time = `${y}/${m}/${d} ${hh}:${mm}:${ss}`;
  42. break;
  43. case 6:
  44. time = `${m}/${d} ${hh}:${mm}:${ss}`;
  45. break;
  46. case 7:
  47. time = `${m}/${d}`;
  48. break;
  49. }
  50. return time;
  51. }
  52. 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. scrum项目冲刺_day01总结

    摘要:今日完成任务. 1.app基本框架页面正在进行 2.图像识别正在进行 总任务: 一.appUI页面 二.首页功能: 1.图像识别功能 2.语音识别功能 3.垃圾搜索功能 4.相关新闻爬取 三.我 ...

  2. php curl发送数据和文件

    function mycurl($file, $url, $aid) { // 如果文件名是中文名,将中文字符编码转换一下 $file=iconv("UTF-8","gb ...

  3. eps出坑出坑

    1 visio格式转eps 先将Visio保存为pdf格式文件 使用adobe acrobat编辑pdf 先将文件裁剪至所需大小 随后点编辑,选择全选,然后文件,导出到,内嵌postscript 2  ...

  4. php 单向链表反转 reverse (没有空的头结点)

    * 参照php标准库设计接口 http://php.net/manual/en/class.spldoublylinkedlist.php * 反转单向链表 reverse方法, 其他的方法为了方便测 ...

  5. 虚拟机启动jenkins,访问提示:该Jenkins实例似乎已离线

    ubuntu虚拟机使用java命令启动jenkins,本地访问提示:该Jenkins实例似乎已离线. https://www.cnblogs.com/du-hong/p/10655635.html 没 ...

  6. tornado中通用模版

    第一: 1.Pycharm新建python项目(不是django项目),在项目下面直接新建server.py,内容如下: 2.安装tornado, pip install tornado import ...

  7. 『Python』matplotlib实现GUI效果

    1. 类RadioButtons的使用方法 类似单选框 import numpy as np import matplotlib.pyplot as plt import matplotlib as ...

  8. 痞子衡嵌入式:MCUBootUtility v3.4发布,支持串行NAND

    -- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.3.0)发布过去 4 个多月了,这一次痞子衡为大家带来了版本升级 v3.4.0,这个版本主要有几个非常重要的更新需 ...

  9. P3793-由乃救爷爷【分块,ST表】

    正题 题目链接:https://www.luogu.com.cn/problem/P3793 题目大意 给出\(n\)个数字的一个序列\(m\)次询问区间最大值 保证数据随机 \(1\leq n,m\ ...

  10. 华为云计算IE面试笔记-其它知识点

    * 虚拟化与云计算的区别?云计算和虚拟化关系?华为云计算怎么做的? 虚拟化是一种具体的技术,实现的是对硬件资源的虚拟化,提升资源利用率,降低能耗,云计算是一种概念各种技术组件的集合,针对的是对各种资源 ...