javascript格式化日期时间方法汇总

下面我为大家详细讲解一下“javascript格式化日期时间方法汇总”的完整攻略。

1. 引言

在前端的工作中,日期时间格式转换是一个十分常见的问题。因此,有必要总结一下javascript中处理日期时间的API和格式化日期的方法,以便于在工作中快速有效地使用。

2. Date对象

在javascript中,我们可以使用内置的Date对象来处理日期时间。Date对象可以通过构造器创建实例,也可以直接调用静态方法获取当前时间等信息。

创建Date对象

我们可以使用new关键字和Date构造器来创建Date对象。

var date = new Date(); // 创建一个包含当前时间的Date对象
console.log(date); // 输出:Thu Aug 26 2021 11:30:00 GMT+0800 (中国标准时间)

也可以使用Date构造器来创建指定时间的Date对象,构造器参数可以是一个整数(UTC时间的毫秒数)、一个表示日期的字符串或者多个数字,依次表示年、月、日、小时、分钟、秒和毫秒。

var date = new Date(2021, 7, 26, 11, 30, 0, 0); // 创建一个包含指定时间的Date对象,月份从0开始计算
console.log(date); // 输出:Mon Aug 26 2021 11:30:00 GMT+0800 (中国标准时间)

获取和设置时间

Date对象提供了一系列方法来获取和设置年、月、日、小时、分钟、秒和毫秒数。

var date = new Date(2021, 7, 26, 11, 30, 0, 0);

var year = date.getFullYear(); // 获取年份
var month = date.getMonth(); // 获取月份,从0开始计算
var day = date.getDate(); // 获取日期
var week = date.getDay(); // 获取星期,0表示星期日,1表示星期一...
var hours = date.getHours(); // 获取小时
var minutes = date.getMinutes(); // 获取分钟
var seconds = date.getSeconds(); // 获取秒数
var milliseconds = date.getMilliseconds(); // 获取毫秒数

console.log(year, month, day, week, hours, minutes, seconds, milliseconds); // 输出:2021 7 26 2 11 30 0 0

我们也可以使用对应的set方法来设置时间。

var date = new Date(2021, 7, 26, 11, 30, 0, 0);

date.setFullYear(2022); // 设置年份为2022
date.setHours(12); // 设置小时为12
date.setMinutes(20); // 设置分钟为20
date.setSeconds(30); // 设置秒数为30

console.log(date); // 输出:Wed Aug 26 2022 12:20:30 GMT+0800 (中国标准时间)

3. 时间格式化

使用Date对象获取到的时间并不是很方便阅读和使用,因此我们需要对其进行格式化。

toISOString()方法

Date对象提供了一个toISOStirng()方法,可以将时间格式化为ISO标准格式:YYYY-MM-DDTHH:mm:ss.sssZ。其中T表示时间的分隔符,Z表示时区。

var date = new Date(2021, 7, 26, 11, 30, 0, 0);
console.log(date.toISOString()); // 输出:2021-08-26T03:30:00.000Z

toLocaleDateString()方法和toLocaleTimeString()方法

Date对象提供了toLocaleDateString()方法和toLocaleTimeString()方法,可以将时间格式化为本地时间的字符串。

var date = new Date(2021, 7, 26, 11, 30, 0, 0);

var dateString = date.toLocaleDateString(); // 格式化日期部分
var timeString = date.toLocaleTimeString(); // 格式化时间部分

console.log(dateString + ' ' + timeString); // 输出:2021/8/26 上午11:30:00

自定义格式化

除了使用内置的方法进行格式化,我们也可以使用自定义的方法来对时间进行格式化。下面是一个常用的自定义格式化函数。

function formatDate(date, fmt) {
  if (!date) return '';
  if (typeof date === 'string') {
    date = new Date(date.replace(/-/g, '/'));
  } else if (typeof date === 'number') {
    date = new Date(date);
  }
  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对象或者日期字符串,第二个是格式化字符串。格式化字符串中可以包含的元素如下表所示。

元素 含义
yyyy 四位数字表示的年份
yy 两位数字表示的年份
M 月份,不加前导零
MM 月份,两位数字表示
d 日,不加前导零
dd 日,两位数字表示
H 小时,使用24小时制,不加前导零
HH 小时,使用24小时制,两位数字表示
h 小时,使用12小时制,不加前导零
hh 小时,使用12小时制,两位数字表示
m 分钟,不加前导零
mm 分钟,两位数字表示
s 秒钟,不加前导零
ss 秒钟,两位数字表示
S 毫秒数

下面是几个示例。

var date = new Date(2021, 7, 26, 11, 30, 0, 0);
console.log(formatDate(date, 'yyyy-MM-dd HH:mm:ss.S')); // 输出:2021-08-26 11:30:00.000
console.log(formatDate(date, 'yyyy/MM/dd hh:mm:ss')); // 输出:2021/08/26 11:30:00
console.log(formatDate(date, 'M/d/yyyy H:m:s')); // 输出:8/26/2021 11:30:0

4. 总结

以上就是javascript中处理日期时间和格式化日期的方法汇总。使用Date对象可以非常方便地获取和设置时间,使用内置方法或者自定义函数可以将时间格式化为我们需要的样子。这对于前端工作者来说是十分实用的技能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript格式化日期时间方法汇总 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Javascript技巧之不要用for in语句对数组进行遍历

    首先,对于JavaScript语言的学习者来说,for in语句非常普遍,用于遍历对象的属性。但对于数组而言,则需要使用其他的遍历方式。 为什么不要用for in语句对数组进行遍历呢?这是因为for in语句实际上是用于遍历对象的属性,而在JavaScript中,数组也是对象的一种,所以使用for in语句遍历数组时,会将所有非数字类型的属性也进行遍历,如A…

    JavaScript 2023年5月27日
    00
  • asp.net新闻列表生成静态页之批量和单页生成

    下面我将详细讲解“ASP.NET新闻列表生成静态页之批量和单页生成”的完整攻略,包括过程、相关技术和示例说明: 背景介绍 在开发一个ASP.NET新闻网站时,为了让网站更加稳定和高效,需要将新闻列表页面和新闻详情页面都生成为静态页面。这样不仅可以大大提高访问速度,还能降低服务器负担。而对于新闻列表的生成,我们可以采用批量生成和单页生成两种方式,这篇文章将为你…

    JavaScript 2023年6月11日
    00
  • Ajax异步请求的五个步骤及实战案例

    下面我来详细讲解一下“Ajax异步请求的五个步骤及实战案例”的完整攻略。 一、Ajax异步请求的五个步骤 1. 创建Ajax对象 使用JavaScript原生方式创建Ajax对象,可以使用XMLHttpRequest对象,也可以使用ActiveXObject。 2. 设置请求方式和请求地址 通过Ajax对象的open方法设置请求方式和请求地址,请求方式有GE…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript基于面向对象之创建对象(2)

    首先,你需要了解JavaScript中面向对象编程的概念。在JavaScript中,我们可以通过构造函数和原型链来实现面向对象编程。 第二篇文章“详解JavaScript基于面向对象之创建对象(2)”主要介绍了通过原型链来创建对象的方式。具体内容包括: 原型链是什么? 原型链是一种由多个对象组成的链式结构,这些对象通过原型链相互关联,在其中可以共享属性和方法…

    JavaScript 2023年5月27日
    00
  • JavaScript之json_动力节点Java学院整理

    JavaScript之json_动力节点Java学院整理 什么是JSON JSON(JavaScript Object Notation)是一种轻量级、易于人阅读和编写的数据交换格式,其数据结构与Javascript中对象字面量相似,因此常用于与Javascript进行数据交互。 JSON的数据格式包括两种结构类型:对象和数组。对象是一个无序的“键/值”对集…

    JavaScript 2023年6月11日
    00
  • javascript开发随笔一 preventDefault的必要

    JavaScript开发随笔一:preventDefault的必要 在JavaScript开发中,我们经常会用到一些DOM操作,例如点击超链接跳转页面,提交表单等。但是有些时候,我们可能会需要改变这些默认行为,比如说:阻止页面跳转,防止表单提交。 这个时候,我们就需要用到事件对象的preventDefault()方法。这个方法可以阻止元素默认的行为,从而实现…

    JavaScript 2023年6月11日
    00
  • Three.js快速入门教程

    下面是”Three.js快速入门教程”的完整攻略,涵盖了安装Three.js、创建场景、添加网格、添加光源、渲染场景等基本步骤。 1. 安装Three.js 在使用Three.js之前,我们需要先将其引入项目中。可以通过以下两种方式来引入: 下载Three.js的源文件到本地并且引入: “`html 2. 在需要使用Three.js的文件中使用CDN地址:…

    JavaScript 2023年5月28日
    00
  • JS实现微信里判断页面是否被分享成功的方法

    实现微信里判断页面是否被分享成功的方法主要需要借助微信JS-SDK提供的能力。以下是实现步骤: 步骤一:引入微信JS-SDK 首先,在网站中引入微信JS-SDK相关代码。代码示例如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script…

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