JavaScript学习笔记(五)

Posted by Ivens on November 4, 2019

一.JavaScript日期

有 4 种方法创建新的日期对象:

  • new Date()
  • new Date(year, month, day, hours, minutes, seconds, milliseconds)
    注:用指定日期和时间创建新的日期对象,JavaScript 从 0 到 11 计算月份不能省略月份。
    如果只提供一个参数,则将其视为毫秒。
  • new Date(milliseconds)
  • new Date(date string)

二.日期方法

1.显示日期

1
2
3
d = new Date();
document.getElementById("demo").innerHTML = d;      
//结果为:Wed Mar 25 2015 08:00:00 GMT+0800 (中国标准时间),等同于d.toString()

2.日期格式化

2.1.ISO 日期(完整的日期加时、分和秒):

与上文new Date(year, month, day, hours, minutes, seconds, milliseconds) 不同之处在于要加引号.如:

1
var d = new Date("2018-02-19T12:00:00");        //日期和时间通过大写字母 T 来分隔。

2.2.JavaScript 短日期通常使用 “MM/DD/YYYY” 这样的语法

2.3.JavaScript 长日期通常以 “MMM DD YYYY” 这样的语法

这样写逗号会被忽略,且对大小写不敏感

2.4.JavaScript 完整日期

1
var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");

注意:在设置日期时,如果不规定时区,则 JavaScript 会使用浏览器的时区。

2.5.比较日期

直接用大于等于小于号即可,如:

1
2
3
4
5
6
7
8
9
10
11
var today, someday, text;
today = new Date();
someday = new Date();
someday.setFullYear(2049, 0, 16);

if (someday > today) {
  text = "今天在 2049 年 1 月 16 日之前";
} else {
  text = "今天在 2049 年 1 月 16 日之后";
}
document.getElementById("demo").innerHTML = text;

三.获取日期方法

只有getDate() 方法从1开始,以数字(1-31)返回,其他都是从0开始

使用 getDay() 将星期名作为名称返回,一周的第一天(0)表示“星期日”,即使世界上的一些国家认为周的第一天是“星期一”。


四.JavaScript中的Math对象

Math.round(x) 的返回值是 x 四舍五入为最接近的整数

Math.pow(x, y) 的返回值是 x 的 y 次幂

1
Math.pow(8, 2); // 返回 64

Math.sqrt(x) 返回 x 的平方根

Math.abs(x)返回x的绝对值

Math.ceil(x)的返回值为x上舍入最接近的整数,Math.floor(x)为下舍入最接近整数

Math.min()Math.max() 可用于查找参数列表中的最低或最高值

1
Math.min(0, 450, 35, 10, -8, -300, -78);  // 返回 -300

Math.random() 返回介于 0(包括) 与 1(不包括) 之间的随机数


五.Math 属性(常量)

1
2
3
4
5
6
7
8
Math.E          // 返回欧拉指数(Euler's number)
Math.PI         // 返回圆周率(PI)
Math.SQRT2      // 返回 2 的平方根
Math.SQRT1_2    // 返回 1/2 的平方根
Math.LN2        // 返回 2 的自然对数
Math.LN10       // 返回 10 的自然对数
Math.LOG2E      // 返回以 2 为底的 e 的对数(约等于 1.414)
Math.LOG10E     // 返回以 10 为底的 e 的对数(约等于0.434)

六.随机

整数随机

1
2
3
4
5
// 随机取0-9之间的整数
Math.floor(Math.random()*10);

// 取1-100之间的整数
Math.floor(Math.random()*100)+1;