当前位置: 首页 > news >正文

第二章 JS进阶 【5. Date(日期对象)】

5.  Date(日期对象)

JavaScript 中的 Date 对象用于处理日期和时间。它支持多种构造方式:

5.1  Date的方法

创建方式

let now = new Date();                    // 当前时间
let date1 = new Date("2023-12-25");      // 字符串创建
let date2 = new Date(2023, 11, 25);      // 年,月(0-11),日
let date3 = new Date(1703520000000);     // 时间戳创建

获取方法

d.getFullYear();            // 年
d.getMonth();               // 月(0-11)
d.getDate();                // 日
d.getDay();                 // 星期(0-6)
d.getHours();               // 小时
d.getMinutes();             // 分钟
d.getSeconds();             // 秒
d.getMilliseconds();        // 毫秒
d.getTime();                // 时间戳(毫秒)

设置方法

d.setFullYear(year);        // 设置年
d.setMonth(month);          // 设置月
d.setDate(date);            // 设置日
d.setHours(hours);          // 设置小时
d.setMinutes(minutes);      // 设置分钟
d.setSeconds(seconds);      // 设置秒
d.setMilliseconds(ms);      // 设置毫秒
d.setTime(timestamp);       // 设置时间戳

格式化方法

d.toString();               // 完整字符串
d.toDateString();           // 日期字符串
d.toTimeString();           // 时间字符串
d.toLocaleDateString();     // 本地日期格式
d.toLocaleTimeString();     // 本地时间格式
d.toISOString();            // ISO格式

 案例

//定时器setInterval(function () {//创建日期let date1 = new Date()  //年月日  时分秒  毫秒// console.log(date1);// document.write(date1)//年月日 时分秒 毫秒// 通过对象获取let y = date1.getFullYear()//年let m = date1.getMonth()//月0~11let d = date1.getDate()//日let week = date1.getDay()//星期几let h = date1.getHours()//时let mi = date1.getMinutes()//分let s = date1.getSeconds()//秒let ms = date1.getMilliseconds()//毫秒// 查看数据console.log(y);console.log(m + 1);console.log(d);console.log(week);//0~6 0是星期日console.log(h);console.log(mi);console.log(s);console.log(ms);//显示//document.write(${y}年${m+1}月${d}日,星期${week},${h}:${mi}:${s} ${ms}`)document.body.innerHTML = `${y}年${m + 1}月${d}日,星期${week},${h}:${mi}:${s} ${ms}`}, 1)//每1毫秒执行一次

5.2  时间戳

时间戳(Timestamp) 是指从某一特定时间点(通常是 1970年1月1日 00:00:00 UTC,也称为 Unix纪元)开始所经过的 毫秒数秒数。时间戳常用于表示某个具体的时间点,便于跨平台、跨语言地进行时间的计算、存储和传输。

🕒 时间戳的基本概念

  • Unix时间戳(Unix Timestamp)
    • 定义:从1970年1月1日 00:00:00 UTC 到现在的 秒数 或 毫秒数
    • 常用于:Linux系统、大多数编程语言和Web开发中。
    • 示例:
      • 1753200000 表示的是 2025年7月22日 00:00:00 UTC
      • 如果是毫秒级时间戳,则为 1753200000000

获取时间戳

//获取时间戳console.log(Date.now());  //毫秒数字 北京:1970-1-1 00:80:00 000let date2 = new Date()console.log(date2);//通过日期对象获取时回截console.log(date2.getTime());

案例

    //2020-7-7let data3 = new Date("2020-7-7")let data4 = new Date(2020, 6, 7)//6代表7月let data5 = new Date(175314345522)//用时间戳获取日期对象console.log(data3);console.log(data4);console.log(data5);//时间戳console.log(new Date(0));//1970-1-1 00:80:00 000console.log(new Date(1000));//1970-1-1 00:80:01 000

5.3  时间差案例
    //12点的时间戳let date = new Date("2025-7-22 12:00:00")let t1 = date.getTime()console.log(t1);//现在时间戳let t2 = Date.now()console.log(t2);let diffMs = t1 - t2console.log("毫秒" + diffMs);console.log("秒" + Math.floor(diffMs / 1000));//向下取整console.log("分" + Math.floor(diffMs / 1000 / 60));console.log("时" + Math.floor(diffMs / 1000 / 60 / 60));console.log("几分" + Math.floor(diffMs / 1000 / 60) % 60);

5.4  获取两个日期,并得出相差天数
    日期1: <input id="ipt_1" type="date">日期2: <input id="ipt_2" type="date"><script>// let str = prompt('请输入')// console.log(str);// 找到输入框、内部的值// console.log(ipt_1);// console.log(ipt_1.value);//值// 当改变的时候ipt_2.onchange = function () { //程序// console.log(ipt_1.value);//值 string// console.log(ipt_2.value);//值 string// date日期对象let d1 = new Date(ipt_1.value)let d2 = new Date(ipt_2.value)// 天数插值,计算房价console.log((d2 - d1) / 1000 / 60 / 60 / 24);}</script>

5.5  设置日期方法
    let date = new Date()//今天// dir对象的结构访问数据console.dir(date);// console.dir(date.toString());//年月日时分秒// console.log(date.toDateString());//年月日// console.log(date.toTimeString());//时分秒// console.log(date.toLocaleDateString());//中式:年月日// console.log(date.toLocaleTimeString());//中式:时分秒console.log(date.toLocaleString());//中式年月日时分秒// console.log(date.toISOString());//国际时间// 设置date.setFullYear(2020)date.setMonth(13)date.setDate(31)console.log(date.toLocaleString());console.log(date.getDay());// 今天的800天后let today = new Date(Date.now())let d = today.getDate()today.setDate(d + 800)//800天后console.log(today.toLocaleString());

6.  error错误

Error对象用于表示程序运行时的错误,是JavaScript中所有错误的基础类型。

内置错误类型

Error                    // 基础错误类型
SyntaxError              // 语法错误
ReferenceError           // 引用错误
TypeError                // 类型错误
RangeError               // 范围错误
URIError                 // URI错误
EvalError                // eval错误(已废弃)

创建错误对象

// 基础错误
let error = new Error("错误信息");
​
// 特定类型错误
let syntaxError = new SyntaxError("语法错误");
let typeError = new TypeError("类型错误");
let referenceError = new ReferenceError("引用错误");

错误对象属性

error.name;               // 错误名称
error.message;            // 错误信息
error.stack;              // 错误堆栈(非标准)
error.fileName;           // 文件名(Firefox)
error.lineNumber;         // 行号(Firefox)

6.1  try...catch... 捕捉错误
        /*try {} catch (error) {}*/try {// console.log(x);let x = 100} catch (error) {// console.log(error);console.dir(error);} finally {//这个可以不用console.log('结束');}

6.2  创建错误
        // 创建错误let err1 = new Error('错错错错错')// console.log(err1);// 显示错误// console.error(err1)console.dir(err1)console.warn('注意注意')

7.  JSON(数据交换格式)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript对象语法。

基本语法

// JSON字符串: {"name": "张三", "age": 18, "isStudent": true}
// JSON数组: [123, "hello", {"key": "value"}]

常用方法

JSON.parse()

// 解析JSON字符串为JavaScript对象
JSON.parse(jsonString);
​
// 带reviver函数的解析
JSON.parse(jsonString, (key, value) => {// 可以对解析的值进行转换return value;
});

JSON.stringify()

// 将JavaScript对象转换为JSON字符串
JSON.stringify(obj);
​
// 带replacer函数的转换
JSON.stringify(obj, (key, value) => {// 可以对值进行过滤或转换return value;
});
​
// 带缩进的格式化
JSON.stringify(obj, null, 2);  // 缩进2空格

案例

    // 对象let obj = {name: "张三",age: 18}// 字符串  json 【轻量数据交换格式】let str = '{"name":"李四","age":20}'document.write(obj + "<br/>")document.write(str + "<br/>")// 对象转json字符串   document.write(JSON.stringify(obj + "<br/>"))// json字符串转对象console.log(JSON.parse(str));

http://www.dtcms.com/a/293239.html

相关文章:

  • 坑机介绍学习研究
  • Linux 使用 screen 窗口会话稳定挂载jar包到后台运行
  • 【图像认知与处理】OpenCV基础学习
  • 每日数据推荐:成都市AOI面数据
  • 疯狂星期四文案网第15天运营日记
  • 【langchain】3分钟构建一个上下文聊天机器人
  • 高可用架构模式——FMEA方法(排除架构可用性隐患的利器)
  • linux辅助知识(Shell 脚本编程)
  • Agent 工具箱:一步步搭建你的第一个 MCP 服务
  • day21-定时任务
  • Atcoder Beginner Contest 415 D题
  • Elasticsearch Java 8.x 的聚合 API 及子聚合的用法
  • (Python)类的练习与巩固(图书管理系统)(类与方法的基础教程)(if条件扩展)(动态类型)(Python教程)
  • RDLC报表纵向合并单元格
  • 适配者模式
  • git reset HEAD的实用指南
  • PyQt5—QLabel 学习笔记
  • Python通关秘籍(四)数据结构——列表
  • 发票识别在费控系统应用剖析
  • Linux 重定向和缓冲区
  • 1.两数之和
  • CDN 优化前端打包体积
  • Unity里的加力
  • Linux研学-MySQL安装
  • IP43半加固笔记本L156H
  • Embassy实战:Rust嵌入式异步开发指南
  • 使用docker(ubuntu)搭建web环境(php,apahce2)
  • Vue 3 响应式系统中的 effectScope、watchEffect、effect 和 watch 详解
  • 解锁 Rust 语言:交叉编译与安全防护全攻略
  • Redis - ZSet数据结构与滑动窗口应用