JavaScript 实现获取当前、昨天及明天日期的多种方法

作者:桌面漫游

时间:2026-10-30

浏览:572

本文介绍了在 JavaScript 中获取当前、昨天和明天日期的几种常见实现方式。通过操作 Date 对象的时间戳,可以灵活计算不同日期的年月日格式。文中提供了基于 jQuery 的默认值赋值示例,以及包含时分秒的详细时间获取函数,并展示了利用参数化函数处理相对日期的通用方案,适用于前端时间控件的默认值设置。

文章目录

JavaScript 获取当前、昨天及明天时间的方法

本文分享了几种使用 JavaScript 获取当前、昨天和明天时间的具体代码实现,供开发者参考。

JavaScript 获取当前、昨天及明天时间的方法

在前端开发中,有时需要为页面的时间选择器设置默认值为当前时间。利用 jQuery 可以方便地实现这一功能,具体代码如下所示。

基于时间戳的日期范围计算与 jQuery 赋值


//昨天的时间
var day1 = new Date();
day1.setTime(day1.getTime()-24*60*60*1000);
var s1 = day1.getFullYear()+"-" + (day1.getMonth()+1) + "-" + day1.getDate();
//今天的时间
var day2 = new Date();
day2.setTime(day2.getTime());
var s2 = day2.getFullYear()+"-" + (day2.getMonth()+1) + "-" + day2.getDate();
//明天的时间
var day3 = new Date();
day3.setTime(day3.getTime()+24*60*60*1000);
var s3 = day3.getFullYear()+"-" + (day3.getMonth()+1) + "-" + day3.getDate();
//拼接时间
function show(){
  var str = "" + s1 + "至" + s2;
  return str;
}
//赋值doubleDate
 $('#dateS').val(show());

以下是获取包含时分秒的完整时间信息的具体实现方法。

获取包含时分秒的完整当前时间


function writeCurrentDate() {
    var now = new Date();
    var year = now.getFullYear(); //得到年份
    var month = now.getMonth();//得到月份
    var date = now.getDate();//得到日期
    var day = now.getDay();//得到周几
    var hour = now.getHours();//得到小时
    var minu = now.getMinutes();//得到分钟
    var sec = now.getSeconds();//得到秒
     var MS = now.getMilliseconds();//获取毫秒
    var week;
    month = month + 1;
    if (month < 10) month = "0" + month;
    if (date < 10) date = "0" + date;
    if (hour < 10) hour = "0" + hour;
    if (minu < 10) minu = "0" + minu;
    if (sec < 10) sec = "0" + sec;
    if (MS < 100)MS = "0" + MS;
    var arr_week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
    week = arr_week[day];
    var time = "";
    time = year + "年" + month + "月" + date + "日" + " " + hour + ":" + minu + ":" + sec + " " + week;
    //当前日期赋值给当前日期输入框中(jQuery easyUI)
    $("#currentDate").html(time);
    //设置得到当前日期的函数的执行间隔时间,每1000毫秒刷新一次。
    var timer = setTimeout("writeCurrentDate()", 1000);
   }

JavaScript 日期处理:获取今天、昨天和明天的第一种函数实现。

通过参数化函数处理相对日期

  function getDay(day){
    var today = new Date()
    // 获取时间戳(毫秒级)
    /*
      day为1,则是,明天的时间戳
      day为-1,则是,昨天的时间戳
      day为-2,则是,前天的时间戳
    */
    var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day
    // Date.setTime(时间戳):设置当前日期的时间
    today.setTime(targetday_milliseconds)
    console.log('today=', today) // today= Sun Mar 05 2023 16:14:56 GMT+0800 (中国标准时间)
    var tYear = today.getFullYear() // 年
    var tMonth = today.getMonth() // 月
    var tDate = today.getDate() // 日
    tMonth = this.doHandleMonth(tMonth + 1)
    tDate = this.doHandleMonth(tDate)
    console.log('返回年月日=', tYear + '-' + tMonth + '-' + tDate)
    return tYear + '-' + tMonth + '-' + tDate
  }
  function doHandleMonth(month) {
    var m = month
    if (month.toString().length == 1) {
      m = '0' + month
    }
    return m
  }

JavaScript 获取今天、昨天和明天日期的第二种函数实现。

通用日期格式化与相对日期获取函数

/* 
  * @params date 日期
  * @params type 日期 prev/current/next 昨天/今天/明天
  * @params fmt 日期拼接符
*/
function getDays(date, type, fmt) {
    let currentDate = new Date(date)
    let y = currentDate.getFullYear()
    let m = currentDate.getMonth() + 1
    let d = currentDate.getDate()
    function dateFormat(date, fmt) {
        let y = new Date(date).getFullYear()
        let m = new Date(date).getMonth() + 1
        let d = new Date(date).getDate()
        return `${y}${fmt}${m}${fmt}${d}`
    }
    switch (type) {
        case "prev":
            if (d - 1 < 1) {
                if (m - 1 < 1) {
                    y = y - 1
                    m = 12
                } else {
                    m = m - 1
                }
                d = new Date(y, m, 0).getDate()
            } else {
                d = d - 1
            }
            break
        case "current":
            break
        case "next":
            if (d + 1 > new Date(y, m, 0).getDate()) {
                if (m + 1 > 12) {
                    y = y + 1
                    m = 1
                    d = 1
                } else {
                    m = m + 1
                    d = 1
                }
            } else {
                d = d + 1
            }
            break;
    default:
      break;
    }
    return dateFormat(new Date(`${y}-${m}-${d}`), fmt)
}
console.log(getDays(new Date('2023-5-13'), "prev", "-"));
console.log(getDays(new Date('2023-5-30'), "next", "-"));
console.log(getDays(new Date('2023-5-31'), "next", "-"));

以上就是本文介绍的全部内容,希望这些示例能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章