JavaScript-Date时间日期

1. Date:

什么是: 存储一个时间,并提供操作时间的API

何时: 只要在程序中存储或计算时间都用日期对象

如何:

 创建: 4:

  1. 创建日期对象,并自动获得当前系统时间:

    var now=new Date();

强调: 因为js是在客户端执行,所以new Date()只能获得客户端系统时间。

  2. 创建日期对象,并保存自定义时间:

    var date=new Date(“yyyy/mm/dd hh:MM:ss”);

  3. 复制一个日期对象:

    var date2=new Date(date1)

  4. 将毫秒数,转化为当地时间:

var date=new Date(ms)

何时: 数据库保存的毫秒数,转化为人能看懂的日期对象,且换算成当地时间。

本质: 计算机日期对象中保存的不是字符串,而是一个毫秒数。197011日(0时区国际标准时间至今的毫秒

 字符串的缺点: 1. 受时区影响 2. 不便于计算

 毫秒数优点: 1. 不受时区影响;2. 极其便于计算

         缺点: 看不懂!

 所以,今后数据库保存时间都用毫秒数

 API: 3句话:

  1. 8个单位:

   FullYear   Month   Date    Day

   Hours    Minutes   Seconds   Milliseconds

  2. 每个单位上都有一对儿get/set方法

   其中: getXXX() 专门用于获取单位的值

        setXXX(num) 专门用于设置单位的值

   强调: setXXX(num) 可自动计算时间进制

        Day没有set, 因为星期几不能随便改

  3. 取值范围:

   Month: 0~11  计算机中的月份都比现实中小1

   Date: 1~31

   Day: 0~6

   Hours: 0~23   

   Minutes/Seconds: 0~59

 计算: 2:

  1. 两日期对象可相减: 结果是毫秒差

  2. 对任意单位做加减: 3:

1. 取值: var d=now.getDate(); //22

2. 计算: d+=60 //82

3. set回去: now.setDate(d); //setXXX可自动调整进制

   强调: setXXX()直接修改原日期对象

   如果想同时保存计算前后的两个日期对象,应该在计算之前复制原日期对象的副本,再用副本计算新日期

   简写: date.setXXX(date.getXXX()+n)

 格式化:

  .toString() 转为当地时间的完整格式

  .toLocaleString() 转为当地时间的简化格式

  .toLocaleDateString() 当地时间的简化格式,保留日期部分

  .toLocaleTimeString() 当地时间的简化格式,仅保留时分秒部分

  .toGMTString() 转为国际标准时间(0时区)

上个例子:

<script>
var hiredate=new Date("2012/6/30");
//复制hiredate到enddate
var enddate=new Date(hiredate);
//将enddate+3年
enddate.setFullYear(enddate.getFullYear()+3);
//复制enddate到renewdate
var renewdate=new Date(enddate);
//将renewdate-1月
renewdate.setMonth(renewdate.getMonth()-1);
//如果renewdate是周六就-1天
if(renewdate.getDay()==6)
renewdate.setDate(renewdate.getDate()-1);
//否则如果renewdate是周日就-2天
else if(renewdate.getDay()==0)
renewdate.setDate(renewdate.getDate()-2);
console.log(hiredate.toLocaleString());
console.log(enddate.toLocaleDateString());
console.log(renewdate.toLocaleDateString());
</script>

猜你喜欢

转载自blog.csdn.net/qq_42092177/article/details/80462802