详解JavaScript时间格式化

yizhihongxing

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

相关文章

  • 用move.js库实现百叶窗特效

    使用move.js库实现百叶窗特效可以通过以下步骤进行操作: 1. 引入move.js库 在 HTML 文件头部添加以下代码来引入 move.js 库: <script src="https://cdn.bootcdn.net/ajax/libs/move.js/0.5.3/move.min.js"></script&g…

    JavaScript 2023年6月10日
    00
  • JS轮播图中缓动函数的封装

    如果你想实现一个流畅的 JS 轮播图,那么你需要考虑如何使用缓动函数来实现平滑的动画效果。在本篇攻略中,我们将会详细讲解如何封装缓动函数,并结合两个简单的示例来演示如何使用。 一、什么是缓动函数? 缓动函数是一种常见的 JavaScript 动画技术,它使用数学公式来控制动画中的速度变化。常见的缓动函数包括线性缓动函数、加速缓动函数和弹性缓动函数等。 在实现…

    JavaScript 2023年6月11日
    00
  • javascript实现图片轮播简单效果

    下面是“javascript实现图片轮播简单效果”的完整攻略: 1. 准备工作 在开始实现图片轮播前,需要先准备好相关的HTML代码、CSS样式和JavaScript脚本。具体的操作如下: 1.1 HTML代码 首先,在HTML文件中添加一个包含图片的容器,例如: <div class="slideshow"> <img…

    JavaScript 2023年6月11日
    00
  • Javascript中的var_dump函数实现代码

    对于Javascript而言,并没有var_dump这个函数。通常情况下,我们可以使用console.log来输出变量的值和类型。 如果想要模拟PHP的var_dump函数,可以参照以下代码: function var_dump(obj) { var result = ”; for (var i in obj) { result += i + ‘: ‘ +…

    JavaScript 2023年6月11日
    00
  • JavaScript中创建字典对象(dictionary)实例

    要在 JavaScript 中创建一个字典实例,可以使用 JavaScript 内置的对象类型之一:Object。Object 对象是一个通用的对象类型,它可以表示任何一个 JavaScript 对象,包括字典。 创建字典实例 创建一个空的字典实例,可以直接使用 Object 构造函数或对象字面量语法,例如: // 使用 Object 构造函数 const …

    JavaScript 2023年5月27日
    00
  • javascript 代码是如何被压缩的示例代码

    Javascript代码被压缩通常可以分为以下几个步骤: 去除代码中的空格、注释、不必要的换行符等无用字符。 压缩变量名,将长变量名换成短变量名,同时确保不会与其他变量名产生冲突。 压缩函数名,将函数名换成简短的名字。 将一些常见的操作(如+、-、*、/)转换成更短的操作符(如@、^、#、|)。 一些改善性能的代码优化。例如:使用逗号操作符合并多次赋值、将较…

    JavaScript 2023年5月27日
    00
  • 基于JS实现带动画效果的流程进度条

    确定需求首先,确定流程进度条的需求,包括显示步骤数量、当前进度、进度条颜色等。根据需求,将进度条分为若干等份,每个等份代表一个步骤。 HTML结构根据上一步的需求,构建进度条的HTML结构,一般采用<ul>标签嵌套<li>标签的方式,每个<li>代表一个步骤,根据步骤的完成情况设定不同的类名。 示例1: <ul cl…

    JavaScript 2023年6月10日
    00
  • VSCode开发TypeScript的实现步骤

    下面是VSCode开发TypeScript的实现步骤的完整攻略: 步骤一:安装VSCode和TypeScript插件 首先需要安装Visual Studio Code(以下简称VSCode),并在VSCode中安装TypeScript插件。可以在VSCode内部搜索TypeScript插件并安装,也可以在官网下载安装。 步骤二:创建TypeScript项目 …

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