JS Date 对象

Date 对象

Date 对象用于处理日期与时间。
创建 Date 对象: new Date()

以下四种方法同样可以创建 Date 对象:

1
2
3
4
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

可参考

更多实例

方法

getTime() 方法

getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。

1
2
var d = new Date();
var n = d.getTime();

n 输出结果:1568630422651

其他方法

Date的各种API


toUTCString() 将Date对象转换为字符串

  • toUTCString() 方法可根据世界时 (UTC) 把 Date 对象转换为字符串,并返回结果。
  • 语法dateObject.toUTCString()
  • 返回值:dateObject 的字符串表示,用世界时表示。

例子:
使用 toUTCString() 来把今天的日期转换为(根据 UTC)字符串:

1
2
3
4
5
6
<script type="text/javascript">

var d = new Date()
document.write (d.toUTCString())

</script>

输出:

1
Tue, 24 Mar 2020 14:17:49 GMT

获取2017-06-10格式的日期

获取2017-06-10格式的日期

  • 1-18 函数 formatDate 接受一个Date对象,返回一个格式化后的日期
    • 2-4 为防止报错,如果没有传入参数,就新建一个Date对象作为参数dt
    • 5 getFullYear()getFullYear()获取年份获取年份
    • 6 getMonth()获取月份,由于获取到的是0-11,所以需要+1
    • 7 getDate()获取日期
    • 8-15 由于我们需要格式化的日期是两位数的,所以当month<10的时候我们需要在前面添加0。日期也是同理。
      • 这里涉及到之前讲的字符串拼接,字符串"0"和数字month拼接后相当于**强制类型转换**,month将成为字符串。
    • 17 通过-连接,将数字拼接字符串 得到 字符串
  • 19 新建一个Date对象dt
  • 20 将dt传入函数formatDate,得到格式化后的日期formatDate
  • 21 打印格式化后的日期formatDate

使用momentjs库 格式化日期

  • moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。
  • momentjs中文网

安装 momentjs

1
2
npm install moment --save   # npm
yarn add moment # Yarn

引入 momentjs

1
2
3
4
5
6
7
8
// require 方式(nodejs)
var moment = require('moment');

// import 方式(react)
import moment from 'moment';

// 原生js
<script src="moment.js"></script>

使用 momentjs

日期格式化

1
2
3
4
5
moment().format('MMMM Do YYYY, h:mm:ss a'); // 三月 29日 2020, 3:18:12 下午
moment().format('dddd'); // 星期日
moment().format("MMM Do YY"); // 3月 29日 20
moment().format('YYYY [escaped] YYYY'); // 2020 escaped 2020
moment().format(); // 2020-03-29T15:18:12+08:00

相对时间

1
2
3
4
5
moment("20111031", "YYYYMMDD").fromNow(); // 8 年前
moment("20120620", "YYYYMMDD").fromNow(); // 8 年前
moment().startOf('day').fromNow(); // 15 小时前
moment().endOf('day').fromNow(); // 9 小时内
moment().startOf('hour').fromNow(); // 18 分钟前

日历时间

1
2
3
4
5
6
7
8
moment().subtract(10, 'days').calendar(); // 2020/03/19
moment().subtract(6, 'days').calendar(); // 上星期一15:18
moment().subtract(3, 'days').calendar(); // 上星期四15:18
moment().subtract(1, 'days').calendar(); // 昨天15:18
moment().calendar(); // 今天15:18
moment().add(1, 'days').calendar(); // 明天15:18
moment().add(3, 'days').calendar(); // 下星期三15:18
moment().add(10, 'days').calendar(); // 2020/04/08

多语言支持

1
2
3
4
5
6
7
8
9
10
11
moment.locale();         // zh-cn
moment().format('LT'); // 15:18
moment().format('LTS'); // 15:18:12
moment().format('L'); // 2020/03/29
moment().format('l'); // 2020/3/29
moment().format('LL'); // 2020年3月29日
moment().format('ll'); // 2020年3月29日
moment().format('LLL'); // 2020年3月29日下午3点18分
moment().format('lll'); // 2020年3月29日 15:18
moment().format('LLLL'); // 2020年3月29日星期日下午3点18分
moment().format('llll'); // 2020年3月29日星期日 15:18