📜  格式化日期时刻 - Javascript (1)

📅  最后修改于: 2023-12-03 15:26:42.751000             🧑  作者: Mango

格式化日期时刻 - Javascript

JavaScript中,我们经常需要对日期进行格式化输出,例如将日期改为“年-月-日”、“月/日/年”等不同的格式。本文将介绍如何使用JavaScript对日期进行格式化输出。

获取当前日期时刻

在JavaScript中,我们使用Date()对象来获取当前日期和时刻。Date()返回的是一个当前日期时刻的对象。我们可以使用以下三种方式来获取当前日期和时刻:

// 第一种方式,获取当前日期和时刻
var date1 = new Date();
console.log(date1); // 输出当前日期时刻

// 第二种方式,获取当前日期和时刻
var date2 = Date.now();
console.log(date2); // 输出当前时间戳

// 第三种方式,获取当前日期和时刻
var date3 = new Date().getTime();
console.log(date3); // 输出当前时间戳

Date()对象会根据实际情况自动转换为本地时间。例如,当我们在中国使用Date()对象获取当前日期时刻时,他会自动加上8小时的时差,得到UTC+8时区的时间。

格式化输出日期时刻

获取到当前日期时刻对象后,我们需要对他进行格式化输出。JavaScript中,我们可以使用以下方法来对日期时刻进行格式化输出:

// 定义一个格式化输出函数
function dateFormatter(date, format) {
    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(format)) format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return format;
}

// 使用格式化输出函数
var date = new Date();
console.log(dateFormatter(date, "yyyy-MM-dd hh:mm:ss")); // 输出格式化后的日期时刻

上述代码中,我们定义了dateFormatter()函数用于格式化输出日期时刻,可以自定义输出日期时刻的格式。例如,"yyyy-MM-dd hh:mm:ss"表示输出的日期格式为“年-月-日 时:分:秒”。

日期计算

在JavaScript中,我们可以使用以下方法对日期进行计算:

// 定义一个计算日期的函数
function dateAdd(date, interval, units) {
    var ret = new Date(date); // 复制当前日期对象
    switch (interval.toLowerCase()) {
        case "year":
            ret.setFullYear(ret.getFullYear() + units);
            break;
        case "quarter":
            ret.setMonth(ret.getMonth() + 3 * units);
            break;
        case "month":
            ret.setMonth(ret.getMonth() + units);
            break;
        case "week":
            ret.setDate(ret.getDate() + 7 * units);
            break;
        case "day":
            ret.setDate(ret.getDate() + units);
            break;
        case "hour":
            ret.setTime(ret.getTime() + units * 3600000);
            break;
        case "minute":
            ret.setTime(ret.getTime() + units * 60000);
            break;
        case "second":
            ret.setTime(ret.getTime() + units * 1000);
            break;
        default:
            ret.setTime(ret.getTime() + units);
    }
    return ret;
}

// 使用日期计算函数
var date = new Date();
console.log(dateAdd(date, "month", 1)); // 输出1个月后的日期

dateAdd()函数可以对日期进行计算。第一个参数是需要计算的当前日期,第二个参数表示计算的时间间隔(可选为year、quarter、month、week、day、hour、minute、second),第三个参数表示计算的时间间隔数。

总结

本文介绍了如何使用JavaScript对日期进行格式化输出、日期计算等操作。JavaScript原生支持日期处理功能,不必借助第三方库,使用方便简单。