7、表达日期和时间(前朝遗老Date)

目录

  • [1. 日期对象](#1. 日期对象)
    • [1.1 Date对象方法](#1.1 Date对象方法)
    • [1.2 示例](#1.2 示例)
  • 参考
  • 待了解

  Date对象现在被视为历史遗留,应当避免在新代码中使用,但是还得了解。

1. 日期对象

  JavaScript没有日期数据类型。但是,你可以使用Date对象及其方法以在你的应用程序里处理日期和时间。Date对象有大量方法用以设置、获取和操作日期。它没有任何属性。

  JavaScript处理日期的方式和Java类似。这两种语言有着许多相同的日期方法,并且都将日期存储为1970年1月1日午夜时分(UTC时间)以来的毫秒数,而Unix时间戳则表示从同一时刻开始至今的秒数。1970年1月1日午夜时分的这一时刻称为纪元。

  Date对象范围从相对于纪元的-100,000,000天起到100,000,000天为止。

  创建Date对象:

javascript 复制代码
const dateObjectName = new Date([parameters]);

  dateObjectName就是被创建的Date对象的名称;它可以是一个新对象,或是现有对象的一个属性。

  不使用new关键字调用Date会返回一个表示当前日期和时间的字符串。

  上述语法中的parameters可以是以下几种之一:

  不传参数:创建当前日期和时间。

  一个表示日期的字符串,可以用多种格式表达日期。具体格式因引擎不同而各异,但始终支持以下格式:YYYY-MM-DDTHH:mm:ss.sssZ。若省略小时、分钟或秒的具体数值,则对应值会被设置为0。

  一组表示年、月、日的整数。例如,xmas95 = new Date(1995, 11, 25)。

  一组表示年、月、日、时、分、秒的整数。例如,xmas95 = new Date(1995, 11, 25, 9, 30, 0)。

1.1 Date对象方法

  Date对象处理日期和时间的方法分为以下几类:

  set方法,用于设置Date对象中的日期和时间值。

  get方法,用于获取Date对象中的日期和时间值。

  to方法,用于返回Date对象中的字符串值。

  parse和UTC方法,用于解析Date字符串。

  你可以通过get和set方法以分别获取和设置秒、分钟、小时、月份第几天、星期几、月份和年份。其中getDay方法返回星期几,但没有对应的setDay方法,因为星期几是自动设置的。这些方法使用整数表示自身值,范围如下:

  秒和分钟:0到59。

  小时:0到23。

  星期:0(星期日)到6(星期六)

  日期:1到31

  年份:自1900年以来的年份

  例如,假设定义了一下日期:

javascript 复制代码
const xmas95 = new Date("1995-12-25");

  xmas95.getMonth()返回11,xmas95.getFullYear()返回1995。

  getTime和setTime方法在日期对比上非常有用。getTime方法返回Date对象自纪元以来的毫秒数。

  例如,以下代码展示了今年的剩余天数:

javascript 复制代码
const today = new Date();
const endYear = new Date(1995, 11, 31, 23, 59, 59, 999);
endYear.setFullYear(today.getFullYear());
const msPerDay = 24 * 60 * 60 * 1000;
let daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
daysLeft = Math.round(daysLeft);
javascript 复制代码
const ipoDate = new Date();
ipoDate.setTime(Date.parse("Aug 9, 1995"));
console.log(ipoDate);

1.2 示例

javascript 复制代码
function JSClock() {
	const time = new Date();
	const hour = time.getHours();
	const minute = time.getMinutes();
	const second = time.getSeconds();
	let temp = String(hour % 12);
	if (temp == "0") {
		temp = "12";
	}
	temp += (minute < 10 ? ":0" : ":") + minute;
	temp += (second < 10 ? ":0" : ":") + second;
	temp += hour >= 12 ? " P.M." : " A.M.";
	return temp;
}

console.log(JSClock());

参考

1、表达日期与时间

待了解

相关推荐
可乐鸡翅yeah_2 小时前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
福兮说2 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
Ai-_Man3 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
liangshanbo12154 小时前
JavaScript 异步核心主线
javascript·事件循环·异步操作
传人once5 小时前
悬停旋转放大和位移效果如何写
javascript·css·动画
默_笙6 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
Dovis(誓平步青云)7 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
xieter8 小时前
【技术精选】TypeScript 高级类型体操:条件类型与模板字面量深度剖析 (2026-10-06)
javascript
ss2738 小时前
AI全栈实战 | 3.3-02 Python 并发:有 GIL 为什么还用多线程,asyncio 和 JS 事件循环同源不同味
开发语言·javascript·python
CappuccinoRose9 小时前
输入事件进阶
前端·javascript·输入事件