首页 > 编程笔记 > JavaScript笔记 阅读:4

JavaScript Date对象的用法(附带实例)

JavaScript 对象分为 3 种,分别是自定义对象、内置对象和浏览器对象:
Date 是 JavaScript 的一个内置对象,用于处理日期和时间。

在使用 JavaScript 开发 Web 应用程序时,经常需要处理和时间相关的问题,比如用户访问网站的时间、购买产品下订单的时间、用户登录的时间等。为此,JavaScript 提供了日期时间对象 Date,来满足开发者的需求。

创建 Date 对象实例有 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);

示例如下:
var today = new Date(); // 系统当前日期
var d1 = new Date("October 13, 2022 11:13:00"); // 2022年10月13日11点13分0秒
var d2 = new Date(2022, 5, 24); // 2022年6月24日
var d3 = new Date(2022, 5, 24, 11, 33, 0); // 2022年6月24日11点33分0秒

Date 对象的常用方法如下表所示。

表:Date对象的常用方法
方法名 功能
getFullYear 返回年份
getHours 返回小时(从 0~23)
getMinutes 返回分钟(从 0~59)
getMonth 返回月份(从 0~11)
getSeconds 返回秒数(从 0~59)
getDate 返回月中的第几天(从 1~31)
getDay 返回星期几(0~6)
toLocaleString 使用区域设置约定将 Date 对象转换为字符串

【实例】格式化输出当前系统时间。
var date = new Date(); // 获取系统当前时间
var year = date.getFullYear(),
    month = date.getMonth() + 1,
    date = d.getDate(),
    day = date.getDay(),
    hour = date.getHours(),
    minute = date.getMinutes(),
    second = date.getSeconds();
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
hour = hour < 10 ? '0' + hour : hour; // 补0
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
console.log("现在时间是: " + year + '年' + month + '月' + date + '日' + hour + ':' + minute + ':' + second + week[day]);
console.log(date.toLocaleString());
程序在获取当前系统时间后,使用 Date 对象方法分别获取年、月、日、时、分、秒数据,然后格式化输出。程序在 Chrome 浏览器控制台中的运行结果为:

现在时间是: 2024年4月5日 14:30:25 星期五
2024/4/5 14:30:25


【实例】新年倒计时。
function countDown() {
    var nowTime = new Date(); // 当前时间
    var nextYear = parseInt(nowTime.getFullYear()) + 1; // 计算下一年份
    var inputTime = new Date(nextYear + "-1-1 0:0:0"); // 新年时间
    var times = (inputTime - nowTime) / 1000; // times 是剩余时间总的秒数
    var d = parseInt(times / 60 / 60 / 24); // 天
    d = d < 10 ? '0' + d : d;
    var h = parseInt(times / 60 / 60 % 24); // 时
    h = h < 10 ? '0' + h : h;
    var m = parseInt(times / 60 % 60); // 分
    m = m < 10 ? '0' + m : m;
    var s = parseInt(times % 60); // 秒
    s = s < 10 ? '0' + s : s;
    return "距离" + nextYear + "年还剩" + d + '天' + h + '小时' + m + '分钟' + s + '秒';
}

console.log(countDown());
程序中定义了函数 countDown(),它返回距离下一个新年所剩时间。其中,返回的两个日期时间之差是相差的毫秒数,通过算法转换成相应的天、小时、分钟和秒。程序在 Chrome 浏览器控制台中的运行结果为:

距离2026年还剩272天 23小时 59分钟 59秒

Date 对象处理日期和时间的方法很多,但很烦琐,要记住这些方法并不容易,而且输出的时间往往不是我们最终想要的本地化时间。项目开发中可以使用 Moment.js、Day.js 等开源日期处理类库来简化代码。

相关文章