详解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日

相关文章

  • Javascript RegExp lastIndex 属性

    JavaScript RegExp的lastIndex属性 JavaScript的RegExp对象中的lastIndex属性是一个整数,表示下一次匹配的起始位置。当使用全局标志g,lastIndex属性会在每次匹配后自动更新。如果没有全局标志,则lastIndex属性始终为0。 语法 lastIndex属性的语法如下: RegExp.lastIndex 示例…

    JavaScript 2023年5月11日
    00
  • JavaScript的代码编写格式规范指南

    JavaScript的代码编写格式规范指南是为了提高代码的可读性和维护性而制定的一些规则。以下是完整的攻略,包括命名规范、缩进、代码结构、注释、使用ES6等方面。 1. 命名规范 一个良好的命名规范可以使代码更加易读易懂。以下是一些常用的命名规范: 1.1 变量名 小驼峰命名法(camelCase):第一个单词小写,后面每个单词的首字母大写,如:userNa…

    JavaScript 2023年5月18日
    00
  • JavaScript中的Function函数

    下面是关于JavaScript中的Function函数的完整攻略: 1. Function函数概述 Function函数是JavaScript中最基本的一种类型,使用Function函数可以将代码封装成一个可重复使用的函数,在代码执行时可以多次调用,从而提高代码的灵活性和复用性。一个Function函数实际上是一个对象,有具体的属性和方法供我们调用,同时也可…

    JavaScript 2023年5月27日
    00
  • 前端面向对象编程之ES5语法ES6语法详解

    前端面向对象编程是现代Web开发中不可或缺的技术手段之一。其中ES5语法和ES6语法是主流的两种面向对象编程语法。 ES5语法详解 ES5是JavaScript的一个版本,主要添加了许多面向对象编程的语法特性,如定义类、创建对象和实现原型继承等。 定义类 在ES5中,我们可以使用function来定义一个类,以下是一个例子: function Person(…

    JavaScript 2023年5月27日
    00
  • JS实现电子时钟入门操作

    JS实现电子时钟是前端开发中一个常见的功能,下面我来为大家介绍一下实现步骤: 步骤一:创建HTML结构 首先需要建立html结构,在标签内添加一个 标签用来存放时钟显示的部分,同时还需要使用CSS样式对时钟进行美化。示例代码如下: <!DOCTYPE html> <html> <head> <meta charset…

    JavaScript 2023年6月11日
    00
  • 不要小看注释掉的JS 引起的安全问题

    首先,注释掉的 JavaScript 代码是存在安全问题的,因为这些代码可以被黑客利用来进行攻击。因此,我们需要小心处理这些注释掉的代码。下面是一些攻略: 1. 审查代码,删除无用的注释信息 我们应该定期地审查我们的代码,删除无用的注释信息。在代码中注释掉的代码可能是过时的,已被修复或已不再需要。除此之外,注释信息还可能包含敏感信息,比如数据库密码、API …

    JavaScript 2023年6月11日
    00
  • 理解javascript函数式编程中的闭包(closure)

    理解 javascript 函数式编程中的闭包(closure)可以分为以下几个步骤: 什么是闭包? 闭包是指一个函数访问了自己定义的外部函数的作用域中的变量。简单来说,就是在一个函数内部可以访问另一个函数作用域中的变量。在 JavaScript 中,当一个函数定义在另一个函数内部时,就会形成一个闭包。 闭包的使用 保存私有变量 闭包可以用来定义私有变量。这…

    JavaScript 2023年6月10日
    00
  • JS实现判断两个日期不能跨年和跨月

    要判断两个日期是否跨年或者跨月,需要将日期转换为时间戳(以毫秒为单位),然后进行比较。 以下是实现判断两个日期是否跨年或者跨月的完整攻略: 步骤一:将日期转换为时间戳 首先需要将需要比较的两个日期都转换为时间戳,可以使用Date对象的getTime()方法来实现。 let date1 = new Date(‘2022-10-01’); let date2 =…

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