JS Date时间格式化的方法

 更新时间:2024年01月20日 10:50:34   作者:请叫我彦祖  
这篇文章主要介绍了JS Date时间格式化的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

JS Date时间格式化

1.1日期的格式化

1.1.1方法一(格式,日期))

// 入参 fmt-格式 date-日期
function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

举个例子:

let date = new Date()
dateFormat("YYYY-mm-dd HH:MM:SS", date)
console.log(dateFormat("YYYY-mm-dd HH:MM", date));
输出: 2019-06-06 19:45:35

1.1.2方法二(当前日期)

// 入参 fmt-格式
Date.prototype.format = function(fmt){
  var o = {
    "M+" : this.getMonth()+1,                 //月份
    "d+" : this.getDate(),                    //日
    "h+" : this.getHours(),                   //小时
    "m+" : this.getMinutes(),                 //分
    "s+" : this.getSeconds(),                 //秒
    "q+" : Math.floor((this.getMonth()+3)/3), //季度
    "S"  : this.getMilliseconds()             //毫秒
  };
  if(/(y+)/.test(fmt)){
    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  }
  for(var k in o){
    if(new RegExp("("+ k +")").test(fmt)){
      fmt = fmt.replace(
        RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));  
    }       
  }
  return fmt;
}

举个例子:

var now = new Date();
var nowStr = now.format("yyyy-MM-dd hh:mm:ss");
//2021-06-03 19:17:35
console.log(nowStr);
//2021年06月03日
console.log(new Date().format("yyyy年MM月dd日")); 
var nowStr = now.format("yyyy-MM-dd hh:mm:ss"); 
//2021-06-03 19:17:35
console.log(nowStr);//
//2021年06月03日19小时17分35秒
console.log(new Date().format("yyyy年MM月dd日hh小时mm分ss秒"));
//输出:
2021-06-03 19:17:35
2021年06月03日
2021-06-03 19:17:35
2021年06月03日19小时17分35秒

推荐时间插件库:moment.js 

Js Date日期格式和字符串的相互转化

// 日期格式化
	 Date.prototype.format = function(fmt) { 
		var o = { 
			"M+" : this.getMonth()+1,                 //月份 
			"d+" : this.getDate(),                    //日 
			"h+" : this.getHours(),                   //小时 
			"m+" : this.getMinutes(),                 //分 
			"s+" : this.getSeconds(),                 //秒 
			"q+" : Math.floor((this.getMonth()+3)/3), //季度 
			"S"  : this.getMilliseconds()             //毫秒 
		}; 
		if(/(y+)/.test(fmt)) {
				fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
		}
		for(var k in o) {
			if(new RegExp("("+ k +")").test(fmt)){
				fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
			}
		}
		return fmt; 
	}
let time = new Date().format("yyyy-MM-dd hh:mm:ss");

到此这篇关于JS Date时间格式化的文章就介绍到这了,更多相关JS Date时间格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 获取非最后一列td值并将title设为该值的方法

    获取非最后一列td值并将title设为该值的方法

    正如标题所示的获取非最后一列td值并将title设为该值,下面使用jquery来简单实现下,需要的朋友可以参考下
    2013-10-10
  • Javascript表单序列化原理及实现代码详解

    Javascript表单序列化原理及实现代码详解

    这篇文章主要介绍了Javascript表单序列化原理及实现代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 让网页根据不同IE版本显示不同的内容

    让网页根据不同IE版本显示不同的内容

    在上一篇blog 《IE8里判断当前网页显示模式》里面提到IE有不同的显示模式以及如何用Javascript 来动态判定。 Web开发者可以根据不同显示模式导入不同的内容。
    2009-02-02
  • TypeScript中交叉类型和联合类型的区别详解

    TypeScript中交叉类型和联合类型的区别详解

    联合类型(Union Types)和交叉类型(Intersection Types)是 TypeScript 中的两种高级类型,它们都用于组合多个类型并生成新的类型,但它们两者之间的用法不一样,本文小编就给大家讲讲TypeScript中交叉类型和联合类型的区别,需要的朋友可以参考下
    2023-09-09
  • 获取焦点时,利用js定时器设定时间执行动作

    获取焦点时,利用js定时器设定时间执行动作

    网上有很多类似的知识,并不是有什么难度的技巧,仅仅是开发过程中的一点点积累而已。
    2010-04-04
  • javascript实现前端分页效果

    javascript实现前端分页效果

    这篇文章主要为大家详细介绍了javascript实现前端分页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • require导入module.exports 或 exports导出的使用方法

    require导入module.exports 或 exports导出的使用方法

    module.exports用于导出整个模块的内容,可以通过赋值给 module.exports 导出一个对象、函数或值,导出的内容可以被其他模块通过require 导入,本文给大家介绍require导入module.exports 或 exports导出的使用,感兴趣的朋友一起看看吧
    2023-11-11
  • 详解百度百科目录导航树小插件

    详解百度百科目录导航树小插件

    本文主要介绍了百度百科目录导航树小插件,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 在JavaScript中使用for循环的方法详解

    在JavaScript中使用for循环的方法详解

    在本文中,我们将学习 JavaScript 中提供,的 for 循环,我们将了解如何在 JavaScript 中使用 for...in 循环语句、其语法、工作原理示例、何时使用或避免使用它以及我们可以使用哪些其他类型的循环,需要的朋友可以参考下
    2023-07-07
  • 简单谈谈ES6的六个小特性

    简单谈谈ES6的六个小特性

    ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率。JS社区的每个人都喜欢新的API、语法以及一些简单、明了更高效的完成重要任务的新特性。下面来一起看看吧。
    2016-11-11

最新评论