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

相关文章

  • Bootstrapvalidator校验、校验清除重置的实现代码(推荐)

    讲解BootstrapValidator校验、校验清除重置的实现代码需要以下步骤: 1. 引入BootstrapValidator插件库 在HTML文档中,需要先引入BootstrapValidator的插件库,如下所示: <link rel="stylesheet" href="https://cdn.jsdelivr.…

    JavaScript 2023年6月10日
    00
  • 用js实现in_array的方法

    下面我将详细讲解如何用JS实现in_array的方法。 一、in_array的功能 首先,我们先来介绍一下in_array的功能。in_array是PHP语言中用来检查一个值是否在一个数组中的方法,其返回值为布尔类型,即true或false。如果该值存在于该数组中,则返回true,否则返回false。 例如,我们有一个数组arr,其中包含了3个元素:[1,2…

    JavaScript 2023年5月27日
    00
  • JavaScript 实现类似Express的中间件系统(实例详解)

    来详细讲解一下“JavaScript 实现类似Express的中间件系统(实例详解)”的攻略。 简介 中间件是实现 Express 等框架功能的核心。本文主要讲解如何通过 JavaScript 实现一个类似 Express 的中间件系统。 实现过程 1. 实现基本的 Application 类 首先,我们需要创建一个 Application 类,表示整个应用…

    JavaScript 2023年5月28日
    00
  • JavaScript中各种二进制对象关系的深入讲解

    JavaScript中各种二进制对象关系的深入讲解 Buffer 在 Node.js 中,Buffer 类被用来在 TCP 流、文件系统操作、以及其他上下文中处理二进制数据流。 创建 Buffer Buffer 可以通过多种方式创建,在以下的代码片段中,我们来看如何创建一个空的 Buffer 对象。 const buf1 = Buffer.alloc(5);…

    JavaScript 2023年5月27日
    00
  • 不要在cookie中使用特殊字符的原因分析

    关于“不要在cookie中使用特殊字符的原因分析”的问题,我可以提供以下详细的攻略: 什么是cookie HTTP cookie(也称为Web cookie、浏览器cookie)是服务器发送到用户浏览器的一小段数据,在浏览器端存储,以便浏览器向该服务器发送请求时携带此数据。通常用于维护用户的登录状态。 为什么不要在cookie中使用特殊字符 特殊字符包括:分…

    JavaScript 2023年6月11日
    00
  • JavaScript设计模式之单例模式实例

    JavaScript设计模式之单例模式实例 什么是单例模式 单例模式是一种创建型设计模式,用于确保一个类只有一个实例,并提供对该实例的全局访问点。 在JavaScript中,单例模式可以通过类的静态属性或闭包来实现。下面我们会用两个例子来说明。 静态属性实现 在这个例子中,我们定义一个Singleton类,使用类的静态属性来实现单例模式。 class Sin…

    JavaScript 2023年6月10日
    00
  • 正则表达式优化JSON字符串的技巧

    下面是关于“正则表达式优化JSON字符串的技巧”的完整攻略。 什么是JSON字符串? JSON是JavaScript对象表示法(JavaScript Object Notation)的简称,是一种轻量级的数据交换格式。JSON数据通过”键-值”(key-value)的方式表示,既易于阅读,也易于编写。在Web开发中,常用JSON字符串来传输数据。 为什么要优…

    JavaScript 2023年5月27日
    00
  • HTML5中使用postMessage实现Ajax跨域请求的方法

    HTML5中使用postMessage实现Ajax跨域请求的方法可以通过以下步骤实现: 在发送请求的页面中,使用postMessage方法向目标页面发送消息,携带需要请求的数据。 // 定义消息内容 var requestData = { dataType: ‘json’, url: ‘http://example.com/api/data’, data: …

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