资讯专栏INFORMATION COLUMN

js获取日期及日期相关js方法 积累总结

isLishude / 1828人阅读

摘要:获取日期常用如下中国标准时间获取完整的年份位获取当前月份代表月获取当前日获取当前星期代表星期天更多请点击标准库或相关参考的第一篇获取当前日期时间及其它操作。

js获取日期

常用如下:

    var date = new Date();//中国标准时间
    var year = date.getFullYear();//获取完整的年份(4位)
    var month = date.getMonth();//获取当前月份(0-11,0代表1月)
    var nowDate = date.getDate();//获取当前日(1-31)
    var day = date.getDay();//获取当前星期X(0-6,0代表星期天)

更多请点击JavaScript 标准库 Date或相关参考的第一篇Js获取当前日期时间及其它操作。

日期的相关方法 格式化日期

1、yyyy-MM-dd

//格式化日期:yyyy-MM-dd
function formatDate(date) {
    var myyear = date.getFullYear();
    var mymonth = date.getMonth() + 1;
    var myweekday = date.getDate();
 
    if (mymonth < 10) {
        mymonth = "0" + mymonth;
    }
    if (myweekday < 10) {
        myweekday = "0" + myweekday;
    }
    return (myyear + "-" + mymonth + "-" + myweekday);//想要什么格式都可以随便自己拼
}

var date = new Date();
//date
//Mon Jun 25 2018 15:32:38 GMT+0800 (中国标准时间)
formatDate(date);
//"2018-06-25"

或者 js标准时间格式化中@joy钰的回答:

function formatDate(dateArg) {
    const date = new Date(dateArg);
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    const formatMonth = month < 10 ? `0${month}` : month;
    const formatDay = day < 10 ? `0${day}` : day;

    return `${year}-${formatMonth}-${formatDay}`
}

2、xx 年 xx 月 xx 日 xx 时 xx 分

//获取当前日期 时间
function todayTime() {
        var date = new Date();
        var curYear = date.getFullYear();
        var curMonth = date.getMonth() + 1;
        var curDate = date.getDate();
        if(curMonth<10){
                curMonth = "0" + curMonth;
        }
        if(curDate<10){
                curDate = "0" + curDate;
        }    
        var curHours = date.getHours();
        var curMinutes = date.getMinutes();
        var curtime = curYear + " 年 " + curMonth + " 月 " + curDate +" 日" + curHours + "时 " + curMinutes + "分 ";
        return curtime;
}

3、英文格式日期

//获取当前日期 英文
function todayTimeEn() {
        var dt = new Date();
        var m = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
        mn = dt.getMonth();
        dn = dt.getDate();
        if(dn<10){
                dn = "0" + dn;
        }
        var curtime = m[mn] + " " + dn + ", " + dt.getFullYear();
        return curtime;
}

4、 自定义任意格式

Date.prototype.Format = function (fmt) {
    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;
   }

使用方法:

new Date().Format("yyyy-MM-dd hh:mm")
//console.log打印结果: "2019-08-22 16:42"

new Date().Format("yyyy.MM.dd hh:mm")
//console.log打印结果: "2019.08.22 16:44"

new Date().Format("yyyy-MM-dd")
//console.log打印结果:"2019-08-22"
周、月 相关的日期方法

1、一周 、本周

//近七天的日期
function setDate() {
            var now = new Date();
            //一天的毫秒数
            var millisecond = 1000 * 60 * 60 * 24;
            var end= new Date(now.getTime() - (7 * millisecond));
 
            var beginDate = formatDate(now);
            var endDate = formatDate(end);
            console.log("beginDate:"+beginDate);
            console.log("endDate :"+endDate );
 }
 
//本周日期 (取周一为第一天、周日为最后一天)
function weekDate() {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth();
        var nowDate = date.getDate();
        var day = date.getDay();
        var beginDate = new Date(year, month, nowDate - day + 1);
        var endDate = new Date(year, month, nowDate + (6 - day) + 1);
        beginDate = formatDate(beginDate);
        endDate = formatDate(endDate);
        console.log("beginDate:"+beginDate);
        console.log("endDate :"+endDate );
    }
 

2、 月

    //本月日期
    function monthDate() {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        if (month < 10) {
            month = "0" + month;
        }
        var day = getDaysInOneMonth(year, month);
        var beginDate = year + "-" + month + "-01";
        var endDate = year + "-" + month + "-" + day;
        console.log("beginDate:"+beginDate);
        console.log("endDate :"+endDate );
    }
 
    //获取某月天数
    function getDaysInOneMonth(year, month) {
        month = parseInt(month, 10);
        var d = new Date(year, month, 0);
        return d.getDate();
    }
获取前天、昨天、今天、明天、后天的时间
function GetDateStr(AddDayCount) {
    var dd = new Date();
    dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
    var y = dd.getFullYear();
    var m = dd.getMonth()+1;//获取当前月份的日期
    var d = dd.getDate();
    return y+"-"+m+"-"+d;
}
console.log("前天:"+GetDateStr(-2));
console.log("昨天:"+GetDateStr(-1));
console.log("今天:"+GetDateStr(0));
console.log("明天:"+GetDateStr(1));
console.log("后天:"+GetDateStr(2));
console.log("大后天:"+GetDateStr(3));
获取起始时间算起第n周的日期
function weeks_enddate(startdate,n){
    var date = new Date(startdate);
    date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * n);//第n周,1、2、3、4.....
    return formatDate(date);
}

//示例:
var startdate = "2018-06-27";//或者 var startdate= new Date()这样写也行的
var week_num = 2;//n是从1开始的整数即可
var enddate = weeks_enddate(startdate,week_num);
console.log("enddate :"+enddate );
//enddate :2018-07-11

上述方法,稍加修改,即可完成如下:

//以周一为一周的第一天算,获取以开始日期所在周为第一周算起的第n周周日的日期
function weeks_enddate(startdate,n){//startdate为开始日期,第n周
    var date = new Date(startdate);
    var year = date.getFullYear();
    var month = date.getMonth();
    var nowDate = date.getDate();
    var day = date.getDay();
    if(day > 0){
        date = new Date(year, month, nowDate + (6 - day) + 1);
    }    
    date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * (n-1));//第n周
    return formatDate(date);
}

//示例:
var startdate = "2018-08-10"; 
var n = 3;//第3周
weeks_enddate(startdate,n);//执行结果为"2018-08-26",以开始日期所在周算为第一周获取第三周周日的日期

//示例:
var startdate = "2018-08-10"; 
var n = 0;
weeks_enddate(startdate,n);//执行结果为"2018-08-05",上周日的日期

//示例:
var startdate = "2018-08-10"; 
var n = -1;
weeks_enddate(startdate,n);//执行结果为"2018-07-29",上上周日的日期
相关参考

Js获取当前日期时间及其它操作
js将日期转换为英文格式
js 获取前天、昨天、今天、明天、后天的时间

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95682.html

相关文章

  • 前端技术 博客文章、书籍 积累

    摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...

    LiangJ 评论0 收藏0
  • 前端技术 博客文章、书籍 积累

    摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...

    codercao 评论0 收藏0
  • 前端技术 博客文章、书籍 积累

    摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...

    huayeluoliuhen 评论0 收藏0
  • Date对象常用的封装方法遇到的坑

    摘要:使用中的对象已经很久了但是一直以来都没有将常用的封装函数和遇到的坑记录下来趁着今天有空就记录下来方便自己下次直接使用并提醒自己遇到过那些坑。利用设置日期时从设置当设置为时即上个月的最后一天参考 使用JS中的Date对象已经很久了,但是一直以来都没有将常用的封装函数和遇到的坑记录下来,趁着今天有空,就记录下来,方便自己下次直接使用,并提醒自己遇到过那些坑。如果有哪些地方不对,希望大家能够...

    taowen 评论0 收藏0
  • 开发中遇到的问题总结

    摘要:获取字符串中出现次数最多的字符。去掉字符串中的所有空格中对象数组按对象属性排序 VUE 1、vue——解决You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use / eslint-disable / to ign...

    wenshi11019 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<