JavaScript Date 对象详解及时间戳和日期格式转换方法

 

1.Date 对象

Date 对象用于处理日期和时间。

创建 Date 对象的语法:

var myDate=new Date()

注释:Date 对象会自动把当前日期和时间保存为其初始值。

Date 对象属性

属性描述
constructor返回对创建此对象的 Date 函数的引用。
prototype使您有能力向对象添加属性和方法。

Date 对象方法

方法描述
Date()返回当日的日期和时间。
getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()从 Date 对象返回月份 (0 ~ 11)。
getFullYear()从 Date 对象以四位数字返回年份。
getYear()请使用 getFullYear() 方法代替。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getTime()返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()根据世界时从 Date 对象返回四位数的年份。
getUTCHours()根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds()根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()设置 Date 对象中月份 (0 ~ 11)。
setFullYear()设置 Date 对象中的年份(四位数字)。
setYear()请使用 setFullYear() 方法代替。
setHours()设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()以毫秒设置 Date 对象。
setUTCDate()根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds()根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource()返回该对象的源代码。
toString()把 Date 对象转换为字符串。
toTimeString()把 Date 对象的时间部分转换为字符串。
toDateString()把 Date 对象的日期部分转换为字符串。
toGMTString()请使用 toUTCString() 方法代替。
toUTCString()根据世界时,把 Date 对象转换为字符串。
toLocaleString()根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString()根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString()根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()返回 Date 对象的原始值。

2.Date转换时间戳

    // 获取当前时间戳(以s为单位)
        // 第一种方式
        var timestamps = +new Date();
        timestamps = timestamps / 1000;
        // 第二种方式
        var timestamp = Date.parse(new Date());
        timestamp = timestamp / 1000;
        // 第三种方式
        var date = new Date(); 
        var str = date.getTime(); //获取从1970 年 1 月 1 日至今的毫秒数
        str = str / 1000;
 
    // 获取某个时间格式的时间戳
    var stringTime = "";
    var timestamp2 = Date.parse(new Date(stringTime));
    timestamp2 = timestamp2 / 1000;

 3.Date日期格式转换

       3.1 区域时间转换

new Date((+new Date()+24*3600*1000)).toLocaleString()
"2020/5/4 下午3:23:16"
new Date((+new Date()+24*3600*1000)).toLocaleDateString()
"2020/5/4"
new Date((+new Date()+24*3600*1000)).toLocaleTimeString()
"下午3:25:21"

       3.2 通过Date对象的api取值拼接(yyyy-MM-dd hh:mm:ss)

 

function formatDate(now) {
        var year = now.getFullYear();
        var month = now.getMonth() + 1;
        var date = now.getDate();
        var hour = now.getHours();
        var minute = now.getMinutes();
        var second = now.getSeconds();
        return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
//      return[year,month,date].join('-')+' '+[hour,minute,second].join(':'); //这种写法也很赞
   }

formatDate(new Date())
//"2020-5-3 15:55:34"

        3.3 给Date对象原型上绑定函数(yyyy-MM-dd hh:mm:ss)

Date.prototype.format = function(format) {
        var date = {
            "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+)/i.test(format)) {
            format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
        }
        for (var k in date) {
            if (new RegExp("(" + k + ")").test(format)) {
                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ?
                    date[k] : ("00" + date[k]).substr(("" + date[k]).length));
            }
        }
        return format;
    }
    console.log(new Date().format('yyyy-MM-dd hh:mm:ss'));
// 2020-05-03 16:01:15

 

4.完善的日期转化函数

 

 

参考资料:

1.https://www.w3school.com.cn/jsref/jsref_obj_date.asp (w3School Js Date对象详解)

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript中的日期可以使用时间戳日期字符串来表示。时间戳是一个数字,表示自1970年1月1日以来的毫秒数。日期字符串则是一段字符串,包含具体的日期和时间信息。在JavaScript中,我们可以通过以下方式将时间戳转换日期字符串: ```javascript const timestamp = 1632797697000; // 时间戳 const dateStr = new Date(timestamp).toLocaleString(); // 将时间戳转换日期字符串 console.log(dateStr); // '2021/9/28 上午10:01:37' ``` 在上面的代码中,我们使用Date对象的toLocaleString()方法时间戳转换为本地日期字符串。如果需要转换为其他格式的日期字符串,可以使用其它Date对象方法。 同样,我们也可以将日期字符串转换时间戳: ```javascript const dateStr = '2021/9/28 上午10:01:37'; // 日期字符串 const timestamp = new Date(dateStr).getTime(); // 将日期字符串转换时间戳 console.log(timestamp); // 1632797697000 ``` 在上面的代码中,我们使用Date对象的getTime()方法日期字符串转换时间戳。需要注意的是,如果日期字符串的格式不正确,则无法正确地转换时间戳。因此,在实际使用中,需要根据具体的日期格式来进行转换。 ### 回答2: JavaScript 时间戳日期字符串的相互转换是 Web 开发中经常用到的操作,本文将详细介绍这两种类型之间的转换方法。 一、JavaScript 时间戳 JavaScript 时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC(世界标准时间)到某个时间点的毫秒数。JavaScript 中可以使用 Date 对象获取当前时间的时间戳,示例代码如下: ```javascript var timestamp = new Date().getTime(); // 获取当前时间的时间戳 ``` 二、JavaScript 日期字符串 JavaScript 日期字符串是指使用一定的格式表示日期的字符串,常见的格式包括: - "YYYY-MM-DD":表示年月日,如 "2021-07-01"; - "YYYY-MM-DD HH:mm:ss":表示年月日时分秒,如 "2021-07-01 11:35:12"。 JavaScript 中可以使用 Date 对象时间戳转换日期字符串,示例代码如下: ```javascript var timestamp = 1627082112060; // 假设时间戳为 2021-07-24 16:08:32 var date = new Date(timestamp); var dateString = date.toLocaleString(); // 转换为本地日期时间字符串 console.log(dateString); // 输出 "2021/7/24 下午4:08:32" ``` 在上面的代码中,我们首先创建了一个 Date 对象,并传入了一个时间戳作为参数。然后通过 toLocaleString 方法将其转换为了本地日期时间字符串。需要注意的是,toLocaleString 方法的输出结果会受到当前操作系统、浏览器等环境的影响,可能会存在差异。 如果想要自定义日期字符串的格式,可以使用 Date 对象的 getFullYear、getMonth、getDate方法获取年、月、日等信息,然后使用字符串拼接的方式生成日期字符串。示例如下: ```javascript var timestamp = 1627082112060; // 假设时间戳为 2021-07-24 16:08:32 var date = new Date(timestamp); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); var dateString = year + '-' + addZero(month) + '-' + addZero(day) + ' ' + addZero(hour) + ':' + addZero(minute) + ':' + addZero(second); console.log(dateString); // 输出 "2021-07-24 16:08:32" function addZero(num) { return num < 10 ? '0' + num : num; } ``` 在上面的代码中,我们使用了一个 addZero 函数将月、日、时、分、秒字符串转换为两位数的格式,使得最终生成的日期字符串符合了常见的格式要求。 三、总结 JavaScript 时间戳日期字符串是常见的日期和时间表示方式,在 Web 开发中经常用到。JavaScriptDate 对象提供了丰富的 API,可以方便地进行时间戳日期字符串之间的转换。需要注意的是,toLocaleString 方法输出的本地日期时间字符串可能会受到环境的影响,生成自定义格式的日期字符串需要手动拼接各个日期时间部分。 ### 回答3: JavaScript中的时间戳日期字符串是常用的表示时间的方式。时间戳是指从1970年1月1日0时0分0秒(UTC)到指定时间之间的毫秒数。日期字符串则是一个格式化后的字符串,如'2022-01-01 12:00:00'表示2022年1月1日中午12点整。在JavaScript中,我们可以通过一些函数来实现时间戳日期字符串的相互转换。 1. 将日期字符串转换时间戳 我们可以使用JavaScript内置的Date对象中的getTime()方法日期字符串转换时间戳。getTime()方法返回从1970年1月1日0时0分0秒(UTC)到该日期对象所表示时间的毫秒数。 代码示例: ``` let dateStr = '2022-01-01 12:00:00'; let timestamp = new Date(dateStr).getTime(); console.log(timestamp); // 1641038400000 ``` 在这个例子中,我们首先定义了一个日期字符串dateStr,然后用new Date()方法将其转换Date对象,并使用getTime()方法获取该日期对象时间戳。最后我们打印了获取到的时间戳。 2. 将时间戳转换日期字符串 同样使用Date对象,我们可以通过构造函数中传入时间戳,然后使用toLocaleString()方法将其转换日期字符串。 代码示例: ``` let timestamp = 1641038400000; let date = new Date(timestamp).toLocaleString(); console.log(date); // '1/1/2022, 12:00:00 PM' ``` 这个例子中,我们首先定义了一个时间戳timestamp,然后使用new Date()方法将其转换Date对象,并使用toLocaleString()方法将其转换日期字符串。最后我们打印了转换后的日期字符串。 3. 自定义日期字符串格式 有时候,我们需要自定义日期字符串格式以满足我们的需求,比如将日期字符串格式化为'2022年01月01日 12时00分00秒'。我们可以使用Date对象中的一些方法来实现该功能。 代码示例: ``` let timestamp = 1641038400000; let date = new Date(timestamp); let year = date.getFullYear(); let month = (date.getMonth() + 1).toString().padStart(2, '0'); let day = date.getDate().toString().padStart(2, '0'); let hours = date.getHours().toString().padStart(2, '0'); let minutes = date.getMinutes().toString().padStart(2, '0'); let seconds = date.getSeconds().toString().padStart(2, '0'); let formattedDate = `${year}年${month}月${day}日 ${hours}时${minutes}分${seconds}秒`; console.log(formattedDate); // '2022年01月01日 12时00分00秒' ``` 在这个例子中,我们首先定义了一个时间戳timestamp,然后使用new Date()方法将其转换Date对象,并使用Date对象的一些方法获取日期字符串的年月日时分秒信息。在获取时分秒信息时,我们还应该对结果进行处理,确保它们是两位数的。最后,我们使用字符串模板将各个时间信息拼接成我们需要的格式化后的日期字符串,并打印到控制台。 总结 JavaScript中利用Date对象来实现时间戳日期字符串的相互转换很简单,只需要掌握几个基本的方法和技巧即可。同时,需要注意在进行日期字符串格式化时,应该对获取到的月、日、时、分、秒信息进行处理,确保它们都是两位数的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值