详解JavaScript时间格式化

详解JavaScript时间格式化

什么是时间格式化

在编写前端代码中,经常需要将时间进行格式化展示。时间格式化可以把人类可读的时间转换成计算机可读的时间,或将计算机可读的时间转换成人类可读的时间格式。实现时间格式化可以让用户更易于理解,也方便程序后续处理。

JavaScript的Date对象

JavaScript内置了Date对象来处理日期与时间。Date对象可以获取当前时间、为日期进行计算以及将日期与时间转换为指定格式。

创建Date对象

可以使用new关键字和Date对象的构造函数来创建一个Date对象。构造函数可以接收多种格式的参数,例如:

// 不传参数,Date对象默认创建当前时间
var date1 = new Date();
console.log(date1);

// 传入指定时间,参数格式为[年,月,日,时,分,秒,毫秒]
var date2 = new Date(2021,3,10,15,30,0,0);
console.log(date2);

// 传入指定时间戳,单位为毫秒
var date3 = new Date(1618043400000);
console.log(date3);

Date对象常用方法

Date对象常用的方法包括:getFullYear()、getMonth()、getDate()、getDay()等等。这些方法可以帮我们获取一个Date对象的具体时间信息。

例如:

var date = new Date();
console.log(date.getFullYear()); // 获取当前年份
console.log(date.getMonth()); // 获取当前月份,从0开始计数
console.log(date.getDate()); // 获取日期
console.log(date.getDay()); // 获取星期,从0开始计数,0代表星期日,1代表星期一等等

JavaScript时间格式化实现

时间格式化的常用符号

在JavaScript中,时间格式化常用的符号包括:

符号 说明
yyyy 年份
MM 月份
dd 日期
HH
mm
ss
SSS 毫秒

实现时间格式化

我们可以自己编写一个时间格式化函数,如下:

/**
 * 时间格式化函数
 * @param {Date} date Date对象
 * @param {string} fmt 时间格式化字符串
 * @return {string} 格式化后的时间字符串
 */
function formatDate(date, fmt){
    var o = {
        "M+" : date.getMonth()+1,                 //月份
        "d+" : date.getDate(),                    //日
        "H+" : date.getHours(),                   //小时
        "m+" : date.getMinutes(),                 //分
        "s+" : date.getSeconds(),                 //秒
        "q+" : Math.floor((date.getMonth()+3)/3), //季度
        "S"  : date.getMilliseconds()             //毫秒
    };
    if(/(y+)/.test(fmt)) {
        fmt=fmt.replace(RegExp.$1, (date.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;
}

该函数中,参数date是Date对象,参数fmt是时间格式化字符串。函数首先定义了一个对象o来存放需要的时间信息,然后使用正则表达式替换fmt字符串中的符号,最后返回格式化后的时间字符串。

该函数支持的格式字符串例如:yyyy年MM月dd日 HH:mm:ss.SSS,可以通过以下方式进行调用:

var date = new Date();
var fmtDate = formatDate(date, "yyyy年MM月dd日 HH:mm:ss.SSS");
console.log(fmtDate);

该函数返回当前时间格式化后的字符串。例如:

2021年05月01日 16:32:09.203

同时,该函数还支持以多种方式创建Date对象,也可以根据需要进行修改以获取更精细的格式化信息。

时间格式化示例

以下是两个基于时间格式化函数的使用示例。

假设我们需要将一个时间戳转换为“2021-05-01 16:32:09”这样的格式:

var timestamp = 1619869929000;
var date = new Date(timestamp);
var fmtDate = formatDate(date, "yyyy-MM-dd HH:mm:ss");
console.log(fmtDate); // 2021-05-01 16:32:09

假设我们需要将一个时间戳转换为“2021年5月1日”这样的格式:

var timestamp = 1619869929000;
var date = new Date(timestamp);
var fmtDate = formatDate(date, "yyyy年M月d日");
console.log(fmtDate); // 2021年5月1日

结论

JavaScript的Date对象可以轻松地实现时间的格式化、转换等操作,方便程序设计和用户理解。同时也可以通过自定义函数来实现更加灵活的时间格式化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解JavaScript时间格式化 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法

    标题:详谈jQuery操纵DOM元素属性attr()和removeAttr()方法 介绍: jQuery是一种非常流行的JavaScript库,它能够让开发者更加便捷地操作DOM元素。其中操纵DOM元素属性的attr()和removeAttr()方法是常用的方法之一,本文将为大家详细介绍这两种方法。 一、attr()方法 attr()方法可以用来获取和设置元…

    JavaScript 2023年6月10日
    00
  • 5个实用的JavaScript新特性

    5个实用的JavaScript新特性攻略 JavaScript是一种非常流行的编程语言,随着时代的发展,JavaScript也在不断发展,新的特性和语法不断涌现。在本篇攻略中,我们将探讨5个实用的JavaScript新特性,帮助你更好地掌握JavaScript的使用。 1. 可选链运算符 可选链运算符(Optional Chaining Operator)是…

    JavaScript 2023年5月17日
    00
  • JS中prototype的用法实例分析

    接下来我将为你详细介绍“JS中prototype的用法实例分析”的完整攻略。 什么是Prototype JS中的每一个对象都有一个Prototype链,它指向了另一个对象,这个对象叫做“原型”,这样就可以实现某些属性和方法的继承。 当我们需要给一个JS对象添加属性或方法时,可以通过prototype来实现。在使用prototype属性时,我们需要明确两点: …

    JavaScript 2023年6月11日
    00
  • HTML中script 标签中的那些属性

    在HTML中, <script> 标签用于嵌入或引用JavaScript代码。 在 <script> 标签中,有两个属性可以用来控制脚本的加载和执行方式: async 和 defer 。 当然这也是常见的一道面试题, async  和  defer 的作用和区别。 async 和 defer 属性都可以用于异步加载脚本,从而避免了在加…

    JavaScript 2023年4月28日
    00
  • JS 俄罗斯方块完美注释版代码

    JS 俄罗斯方块完美注释版代码是一款非常经典的俄罗斯方块游戏,在学习 JavaScript 编程的过程中非常适合进行体验和学习。下面,我将给出关于这款游戏的完整攻略,帮助初学者更好地理解代码和游戏逻辑。 准备工作 在开始阅读代码之前,我们需要先完成以下准备工作: 安装浏览器:在电脑上安装 Google Chrome、Firefox 等主流浏览器。 下载源代码…

    JavaScript 2023年5月28日
    00
  • JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例

    下面我将详细讲解JavaScript处理HTML事件、键盘事件、鼠标事件的攻略,包括基础概念、代码实现和示例说明。 HTML事件 基础概念 HTML事件是页面元素在浏览器中发生的特定操作,如点击、鼠标移动、键盘按下等。在JavaScript中,我们可以通过事件驱动来实现对HTML事件的处理。 代码实现 // 获取对应元素 var ele = document…

    JavaScript 2023年6月11日
    00
  • document.cookie 使用小结

    我们来详细讲解一下 document.cookie 的使用小结。 一、概述 document.cookie 属性是用于读取和设置 Cookie 的,它可以让我们在客户端存储非常小且不敏感的数据。document.cookie 属性返回所有 cookie 名称及其对应值。但请记住,document.cookie 属性不是一个数组,而是一个字符串,而且无法支持删…

    JavaScript 2023年6月11日
    00
  • 微信小程序:数据存储、传值、取值详解

    微信小程序:数据存储、传值、取值详解 一、数据存储 微信小程序中数据存储可分为两部分,一部分是本地存储,即存储在用户的本地缓存中,另一部分是云存储,即存储在微信开发者工具提供的云服务器中。 1. 本地存储 本地存储使用wx.setStorage和wx.getStorage进行数据的存储和获取。 1.1 存储数据 使用wx.setStorage函数可以将数据存…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部