时间格式化

有的时候,我们需要一定格式的 时间 比如 2017-05-12 08:48 这样的格式。

第一种:

function formatDate1(time){var date = new Date(time);var year = date.getFullYear(),month = date.getMonth() + 1,//月份是从0开始的day = date.getDate(),hour = date.getHours(),min = date.getMinutes(),sec = date.getSeconds();var newTime = year + '-' +month + '-' +day + ' ' +hour + ':' +min + ':' +sec;return newTime;
};
alert(formatDate1(new Date().getTime()));  //2019-2-21 10:37:19

前置0

但是这里存在一个问题,就是,我想要的格式应该是 2017-05-12 08:48 在月、日、时、分、秒 小于10的时候,应该要前置一个0改进代码

第二种:

function formatDate2(time){var date = new Date(time);var year = date.getFullYear(),month = date.getMonth()+1,//月份是从0开始的day = date.getDate(),hour = date.getHours(),min = date.getMinutes(),sec = date.getSeconds();var newTime = year + '-' +(month < 10? '0' + month : month) + '-' +(day < 10? '0' + day : day) + ' ' +(hour < 10? '0' + hour : hour) + ':' +(min < 10? '0' + min : min) + ':' +(sec < 10? '0' + sec : sec);return newTime;
};
alert(formatDate2(new Date().getTime()));  //2019-02-21 10:39:33

第三种:

这下格式对了。但是会不会麻烦了点?我们再试试这种
一个长度为10 的数组:

    var preArr = Array.apply(null,Array(10)).map(function(elem, index) {return '0'+index;});//开个长度为10的数组 格式为 ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"]

如果数字在 preArr 中则取 preArr[i] 值,否则 就本身的值,如:preArr[month] || month。具体实现如下:

function formatDate3(time){var date = new Date(time);var year = date.getFullYear(),month = date.getMonth()+1,//月份是从0开始的day = date.getDate(),hour = date.getHours(),min = date.getMinutes(),sec = date.getSeconds();var preArr = Array.apply(null,Array(10)).map(function(elem, index) {return '0'+index;});//开个长度为10的数组 格式为 ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"]console.log(preArr[9]);console.log(preArr[hour]||hour);var newTime = year + '-' +(preArr[month]||month) + '-' +(preArr[day]||day) + ' ' +(preArr[hour]||hour) + ':' +(preArr[min]||min) + ':' +(preArr[sec]||sec);return newTime;
};
alert(formatDate3(new Date().getTime()));  //2019-02-21 10:45:54

任意设置时间模式

第四种(推荐使用)

以上,都是按照固定的格式YY-MM-DD hh:mm:ss 输出的。要是产品突然说,改成2017年05月12这种格式,天啦撸,又要改o(╯□╰)o。那我还是写个结构好一些的吧,你们随便玩。

function formatDate(time,format='YY-MM-DD hh:mm:ss'){var date = new Date(time);var year = date.getFullYear(),month = date.getMonth()+1,//月份是从0开始的day = date.getDate(),hour = date.getHours(),min = date.getMinutes(),sec = date.getSeconds();var preArr = Array.apply(null,Array(10)).map(function(elem, index) {return '0'+index;});//开个长度为10的数组 格式为 ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"]var newTime = format.replace(/YY/g,year).replace(/MM/g,preArr[month]||month).replace(/DD/g,preArr[day]||day).replace(/hh/g,preArr[hour]||hour).replace(/mm/g,preArr[min]||min).replace(/ss/g,preArr[sec]||sec);return newTime;
};alert(formatDate(new Date().getTime()));  //2019-02-21 10:45:54alert(formatDate(new Date().getTime(),'YY年MM月DD日'));//2019年02月21日alert(formatDate(new Date().getTime(),'今天是YY/MM/DD hh:mm:ss'));//今天是2019/02/21 10:49:29

参考文章:

javascript 时间格式化

Array.apply(null, {length: 20})和Array(20)的理解

Date --> String

    alert( new Date().toLocaleString() );  //2019/2/21 上午11:03:12alert( new Date().toLocaleDateString() );  //2019/2/21alert( new Date().toLocaleTimeString() );  //上午11:03:12

转成任意时间模式:使用第四种

 String --> Date

parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。

    var date1 = new Date("2019-02-21 10:08:43");var date2 = new Date(Date.parse("2019-02-26".replace(/-/g, "/")));alert( date1 );  //Thu Feb 21 2019 10:08:43 GMT+0800 (中国标准时间)alert( date2 );  //Tue Feb 26 2019 00:00:00 GMT+0800 (中国标准时间)alert( Date.parse("2019-02-26".replace(/-/g, "/")) );  //1551110400000alert( Date.parse("2019-02-26 10:08:43".replace(/-/g, "/")) );  //1551146923000

JavaScript 时间格式化相关推荐

  1. JavaScript时间格式化

    title: JavaScript时间格式化 abbrlink: 26bcd43f date: 2021-10-10 14:26:18 tags: - Vue categories: - Vue技巧 ...

  2. javascript时间格式format函数,js日期格式化函数

    我在之前有一篇文章,写的是"javascript时间戳函数",大家可以看一下,记录了js时间戳的转换,今天主要写的函数式日期格式化函数,我们有时候调用的new Date()不是格式 ...

  3. javascript 优雅实现时间格式化

    有的时候,我们需要一定格式的 时间 比如 2017-05-12 08:48 这样的格式. 上代码先 时间格式化 第一种 function formatDate(time){var date = new ...

  4. 第一百零四节,JavaScript时间与日期

    JavaScript时间与日期 学习要点: 1.Date类型 2.通用的方法 3.格式化方法 4.组件方法 ECMAScript提供了Date类型来处理时间和日期.Date类型内置一系列获取和设置日期 ...

  5. 字符串格式化成时间格式_小程序wxs中的时间格式化以及格式化时间和date时间互转...

    WXS(WeiXin Script)是小程序的一套脚本语言,wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致.其中包括了很多日常使用的javascrip ...

  6. Json 时间 转换为 Javascript 时间 Date Jquery 调用WCF

    "/Date(1232035200000)/" 怎么转换成 javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); val ...

  7. java/javascript 时间操作工具类

    一.java 时间操作工具类 import org.springframework.util.StringUtils;import java.text.ParseException; import j ...

  8. python 日期格式月份不加前导,Python datetime时间格式化去掉前导0

    Python datetime时间格式化去掉前导0 Python时间格式化的时候,去掉前导0的: dt = datetime.now() print dt.strftime('%-H') #结果是: ...

  9. Mysql日期时间格式化 %Y-%m-%d %H:%i:%S

    获取当前时间戳 mysql> select unix_timestamp(now()); +-----------------------+ | unix_timestamp(now()) | ...

  10. 如何在 JavaScript 中格式化日期?

    问: 如何将 Date 对象格式化为字符串? huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入.分类等筛选,希望这些产品与实践经验能给您带来灵感. 答1: HuntsBot周刊–不定时 ...

最新文章

  1. 一文讲解机器学习算法中的共线性问题
  2. javascript基础系列(入门前须知)
  3. 基于angular4+ng-bootstrap+bootstrap+scss的后台管理系统界面
  4. python函数应用_Python 函数及其应用
  5. 自制操作系统(十) 图像叠加处理
  6. python基础课程_2学习笔记3:图形用户界面
  7. linux mysql 系统时间函数吗_Linux 宝库 - Mysql日期和时间函数不求人
  8. android xml defaulthandler解析,sax解析xml文件的DefaultHandler处理类
  9. 计算机跳转列表常用组合框,2015计算机二级VB考点复习指导:列表框和组合框
  10. javascript如何处理多级的实时监听
  11. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.5. 解析器
  12. silverlight4 开发必备
  13. 华硕B85M系列主板 免编程器刷BIOS教程
  14. idea替换和查找快捷键(看了不后悔系列)
  15. 瞰见 | 美股新贵Confluent背后的卡夫卡,不是那个魔幻小说家
  16. 用Python画等边三角形
  17. C++ 数据结构与算法 (十一)(排序算法)
  18. window版加密磁盘
  19. 【项目管理/PMP/PMBOK第六版/新考纲】计算题35道带答案解析!敏捷/事业环境因素/可行性研究分析/变更/赶工/关键路径/进度压缩/ WBS/监控过程
  20. 什么是uni-app?

热门文章

  1. 解决Ubuntu 20.04无法播放网页音视频的问题
  2. 深度强化学习(机器之心)
  3. nav-tage、vue3.0顶部历史浏览记录代码实现 vuex + el + vue3.0
  4. 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (作者:剽悍一小兔)第七、八、九节学习随笔
  5. git pull 详解
  6. 【beef工具-01】神器beef的安装与简介
  7. hdu 4622 Reincarnation(后缀树组求子串个数)
  8. 电脑怎么设置时间自动关机?
  9. oracle异常策略,oracle segmentation fault错误
  10. zb薄片怎么往里加厚_烘焙爱好者的必修课----无敌详细的【千层酥皮】做法