WEB基础之:JavaScript Date时间处理
JavaScript Date时间处理
1. 语法
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
1.1 参数
-
空:如果没有提供参数,那么新创建的Date对象表示实例化时刻的日期和时间。
-
value:一个 Unix 时间戳(Unix Time Stamp),它是一个整数值,表示自1970年1月1日00:00:00 UTC(the Unix epoch)以来的毫秒数,忽略了闰秒。请注意大多数 Unix 时间戳功能仅精确到最接近的秒。
-
dateString:表示日期的字符串值。该字符串应该能被 Date.parse() 正确方法识别。
-
分别提供日期与时间的每一个成员 当至少提供了年份与月份时,这一形式的 Date() 返回的 Date 对象中的每一个成员都来自下列参数。没有提供的成员将使用最小可能值(对日期为1,其他为0)。 year:表示年份的整数值。 0到99会被映射至1900年至1999年,其它值代表实际年份。 monthIndex:表示月份的整数值,从 0(1月)到 11(12月)。 可选项: date:表示一个月中的第几天的整数值,从1开始。默认值为1。 hours:表示一天中的小时数的整数值 (24小时制)。默认值为0(午夜)。 minutes:表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为0。 seconds:表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为0。 milliseconds:表示一个完整时间的毫秒部分的整数值。默认值为0。
2. 方法
Date.now()
- 返回自 1970-1-1 00:00:00 UTC至今所经过的毫秒数。
Date.parse()
- 解析一个表示日期的字符串,并返回从 1970-1-1 00:00:00 所经过的毫秒数。(注意: 由于浏览器差异和不一致,强烈建议不要使用Date.parse解析字符串。)
Date.UTC()
- 接受和构造函数最长形式的参数相同的参数(从2到7),并返回从 1970-01-01 00:00:00 UTC 开始所经过的毫秒数。
2.1 Getter方法
Getter方法 | Setter方法 | 描述 |
---|---|---|
Date.prototype.getDate() | Date.prototype.setDate() | 根据本地时间返回指定日期对象的月份中的第几天(1-31)。 |
Date.prototype.getDay() | 根据本地时间返回指定日期对象的星期中的第几天(0-6)。 | |
Date.prototype.getFullYear() | Date.prototype.setFullYear() | 根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)。 |
Date.prototype.getHours() | Date.prototype.setHours() | 根据本地时间返回指定日期对象的小时(0-23)。 |
Date.prototype.getMilliseconds() | Date.prototype.setMilliseconds() | 根据本地时间返回指定日期对象的毫秒(0-999)。 |
Date.prototype.getMinutes() | Date.prototype.setMinutes() | 根据本地时间返回指定日期对象的分钟(0-59)。 |
Date.prototype.getMonth() | Date.prototype.setMonth() | 根据本地时间返回指定日期对象的月份(0-11)。 |
Date.prototype.getSeconds() | Date.prototype.setSeconds() | 根据本地时间返回指定日期对象的秒数(0-59)。 |
Date.prototype.getTime() | Date.prototype.setTime() | 返回从1970-1-1 00:00:00 UTC到该日期经过的毫秒数,对于1970-1-1 00:00:00 UTC之前的时间返回负值。 |
Date.prototype.getTimezoneOffset() | 返回当前时区的时区偏移。 | |
Date.prototype.getUTCDate() | Date.prototype.setUTCDate() | 根据世界时返回特定日期对象一个月的第几天(1-31). |
Date.prototype.getUTCDay() | 根据世界时返回特定日期对象一个星期的第几天(0-6). | |
Date.prototype.getUTCFullYear() | Date.prototype.setUTCFullYear() | 根据世界时返回特定日期对象所在的年份(4位数). |
Date.prototype.getUTCHours() | Date.prototype.setUTCHours() | 根据世界时返回特定日期对象当前的小时(0-23). |
Date.prototype.getUTCMilliseconds() | Date.prototype.setUTCMilliseconds() | 根据世界时返回特定日期对象的毫秒数(0-999). |
Date.prototype.getUTCMinutes() | Date.prototype.setUTCMinutes() | 根据世界时返回特定日期对象的分钟数(0-59). |
Date.prototype.getUTCMonth() | Date.prototype.setUTCMonth() | 根据世界时返回特定日期对象的月份(0-11). |
Date.prototype.getUTCSeconds() | Date.prototype.setUTCSeconds() | 根据世界时返回特定日期对象的秒数(0-59). |
Date.prototype.getYear() | Date.prototype.setYear() | 根据特定日期返回年份 (通常 2-3 位数). 使用 getFullYear() . |
2.2 实例
var today = new Date();
var birthday = new Date('December 17, 1995 03:24:00');
var birthday = new Date('1995-12-17T03:24:00');
var birthday = new Date(1995, 11, 17);
var birthday = new Date(1995, 11, 17, 3, 24, 0);
//
// 使用 Date 对象
var start = Date.now();
// 调用一个消耗一定时间的方法:
doSomethingForALongTime();
var end = Date.now();
var e
lapsed = end - start; // 以毫秒计的运行时长
2.3 计算经过时间
// 使用 Date 对象
var start = Date.now();
// 调用一个消耗一定时间的方法:
doSomethingForALongTime();
var end = Date.now();
var elapsed = end - start; // 以毫秒计的运行时长
// 使用内建的创建方法
var start = new Date();
// 调用一个消耗一定时间的方法:
doSomethingForALongTime();
var end = new Date();
var elapsed = end.getTime() - start.getTime(); // 运行时间的毫秒值
// to test a function and get back its return
function printElapsedTime (fTest) {
var nStartTime = Date.now(),
vReturn = fTest(),
nEndTime = Date.now();
alert("Elapsed time: " + String(nEndTime - nStartTime) + " milliseconds");
return vReturn;
}
yourFunctionReturn = printElapsedTime(yourFunction);
// 获取自 Unix 起始时间以来经过的秒数
var seconds = Math.floor(Date.now() / 1000);