JS日期计算,日期格式化,时间计算

本文介绍JavaScript中日期对象的实用操作方法,包括字符串到日期类型的转换、日期加减天数、日期格式化及计算到下周一的剩余小时数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript Date 对象(JavaScript Date 参考手册

1、字符串转化成日期类型

//+---------------------------------------------------
//| 字符串转成日期类型
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
//+---------------------------------------------------
function strToDate(DateStr)
{
    var converted = Date.parse(DateStr);
    var myDate = new Date(converted);
    if (isNaN(myDate))
    {
        var arys= DateStr.split('-');
        myDate = new Date(arys[0], --arys[1], arys[2]);
    }
    return myDate;
}

2、加减天数/字符串格式转化成Date

  • 字符串日期形式加减天数
//加减天数
function dateAddDays(dateStr, dayCount) {
    var tempDate = new Date(dateStr.replace(/-/g,"/"));//把日期字符串转换成日期格式
    return new Date((tempDate / 1000 + (86400 * dayCount)) * 1000);//增加n天后的日期
}

调用

dateAddDays('2022-01-30 12:00:12', 5);
  • Date对象加减天数
var today = new Date();
var monday = new Date(Date.parse(today) - 86400000 * days); // days 需要加减的天数

3、Date对象字符串格式化

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
调用:
var time1 = new Date().Format("yyyy-MM-dd");
var time2 = new Date().Format("yyyy-MM-dd hh:mm:ss");

4、计算距离下周一还有几个小时

var today = new Date();
var days = (today.getDay() + 6) % 7;
var td = new Date(Date.parse(today) + 86400000 * (7 - days));
var nextMonday = new Date(td.getFullYear(), td.getMonth(), td.getDate());
var hours = parseInt((nextMonday - today) / (1000 * 60 * 60)) + 1;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值