js获取当前日期的昨天明天/前后1,2天甚至前后多天的解决方案

来源:网络 文章列表 2019-04-04 8
根据当前日期或者某个计算出该日期的前一天后一天的日期值

需求描述:

根据当前时间,计算前一天/后一天(也就是昨天、明天)的日期,且格式为YY-mm-dd这种日期格式。最好是能计算出前一天或者2天的日期。

代码逻辑:

1、首先我们获取当前时间

2、计算前一天、后一天的日期

3、根据日期格式要求,匹配出日期来

代码实现:

获取当前时间

var dateTime = new Date();

计算前一天后一天

dateTime.setDate(dateTime.getDate() + days);

根据指定日期匹配

var args = {
        "M+": dateTime.getMonth() + 1,
        "d+": dateTime.getDate(),
        "h+": dateTime.getHours(),
        "m+": dateTime.getMinutes(),
        "s+": dateTime.getSeconds(),
        "q+": Math.floor((dateTime.getMonth() + 3) / 3), //quarter

        "S": dateTime.getMilliseconds()
    };
    console.log(args)
    if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (dateTime.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var i in args) {
        var n = args[i];

        if (new RegExp("(" + i + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
    } 
    return format

完整代码如下:

function getSomeDate(days, format) { 
    var dateTime = new Date();
    dateTime.setDate(dateTime.getDate() + days);
    // 匹配字符串格式
    var args = {
        "M+": dateTime.getMonth() + 1,
        "d+": dateTime.getDate(),
        "h+": dateTime.getHours(),
        "m+": dateTime.getMinutes(),
        "s+": dateTime.getSeconds(),
        "q+": Math.floor((dateTime.getMonth() + 3) / 3), //quarter

        "S": dateTime.getMilliseconds()
    };
    if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (dateTime.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var i in args) {
        var n = args[i];

        if (new RegExp("(" + i + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
    } 
    return format
}

执行代码结果:

getSomeDate(-1, 'yyyy-MM-dd h:m:s')  // 2019-04-06 18:40:13
getSomeDate(1, 'yyyy-MM-dd h:m:s')  // 2019-04-08 18:40:13

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接