首页 > 技术文章 > JavaScript--- Date

shiyi2009 2020-10-26 21:04 原文

 Date 对象

一、创建日期对象:

    1.创建需求:使用new 运算符和 Date(构造方法)构造函数即可。

    var d = new Date();

    2.在调用Date构造方法而不传递参数的情况下,新建的对象自动获取当前的时间和日期。

     3.创建日期对象并指定时间,

      3.12015/08/22

      3.2、2017-08-06

      3.3、2016,04,13;

案例:var d = new Date('2020,10,25');

            console.log(d)

  

  • 1.1 Date 对象用于处理日期和时间。

  • 1.2 创建 Date 对象的语法

  • var myDate=new Date(); //注释:Date 对象会自动把当前日期和时间保存为其初始值。
  • 2.对象方法
  • var myDate = new Date(); Date() //返回当日的日期和时间
  • myDate.getYear(); //获取当前年份(2位)
  • myDate.getFullYear(); //获取完整的年份(4位,1970-????)
  • myDate.getMonth(); //获取当前月份(0-11,0代表1月)
  • myDate.getDate(); //获取当前日(1-31)
  • myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
  • myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
  • myDate.getHours(); //获取当前小时数(0-23)
  • myDate.getMinutes(); //获取当前分钟数(0-59)
  • myDate.getSeconds(); //获取当前秒数(0-59)
  • myDate.getMilliseconds(); //获取当前毫秒数(0-999)
  • myDate.toLocaleDateString(); //获取当前日期
  • myDate.toLocaleTimeString(); //获取当前时间
  • myDate.toLocaleString( ); //获取日期与时间
  • 3. Date的原型方法扩展

  • /** * 日期时间脚本库方法列表: * (
  • 1)Date.isValiDate:日期合法性验证 *
  • 2)Date.isValiTime:时间合法性验证 *
  • 3)Date.isValiDateTime:日期和时间合法性验证 *
  • 4)Date.prototype.isLeapYear:判断是否闰年 *
  • 5)Date.prototype.format:日期格式化 *
  • 6)Date.stringToDate:字符串转成日期类型 *
  • 7)Date.daysBetween:计算两个日期的天数差 *
  • 8)Date.prototype.dateAdd:日期计算,支持正负数 *
  • 9)Date.prototype.dateDiff:比较日期差:比较两个时期相同的字段,返回相差值 *
  • 10)Date.prototype.toArray:把日期分割成数组:按数组序号分别为:年月日时分秒 *
  • 11)Date.prototype.datePart:取得日期数据信息 */
  • 案例看源代码:

/** * 日期合法性验证:判断dataStr是否符合formatStr指定的日期格式 *

示例: * (1)alert(Date.isValiDate('2008-02-29','yyyy-MM-dd'));//true *

(2)alert(Date.isValiDate('aaaa-58-29','yyyy-MM-dd'));//false

* dateStr:必选,日期字符串 * formatStr:可选,格式字符串,可选格式有: *

(1)yyyy-MM-dd(默认格式)或YYYY-MM-DD *

(2)yyyy/MM/dd或YYYY/MM/DD *

(3)MM-dd-yyyy或MM-DD-YYYY *

(4)MM/dd/yyyy或MM/DD/YYYY */

Date.isValiDate = function(dateStr, formatStr) {

if(!dateStr){ returnfalse; }

if(!formatStr){ formatStr = "yyyy-MM-dd";

//默认格式:yyyy-MM-dd }

if(dateStr.length!=formatStr.length){

returnfalse;

}else{

if(formatStr=="yyyy-MM-dd"||formatStr=="YYYY-MM-DD"){

var r1=/^(((((([02468][048])|([13579][26]))(00))|(d{2}(([02468][48])|

([13579][26]))))-((((0[13578])|(1[02]))-(([0-2][0-9])|(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|

(02-([0-2][0-9]))))|(d{2}(([02468][1235679])|([13579][01345789]))-((((0[13578])|(1[02]))-(([0-2][0-9])|

(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|(02-(([0-1][0-9])|(2[0-8]))))))$/

; return r1.test(dateStr);

}elseif(formatStr=="yyyy/MM/dd"||formatStr=="YYYY/MM/DD"){

var r2=/^(((((([02468][048])|([13579][26]))(00))|(d{2}(([02468][48])|([13579][26]))))\/((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|

(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/([0-2][0-9]))))|(d{2}(([02468][1235679])|

([13579][01345789]))\/((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|

(11))\/(([0-2][0-9])|(30)))|(02\/(([0-1][0-9])|(2[0-8]))))))$/;

return r2.test(dateStr);

}elseif(formatStr=="MM-dd-yyyy"||formatStr=="MM-DD-YYYY"){

var r3=/^((((((0[13578])|(1[02]))-(([0-2][0-9])|(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|(02-([0-2][0-9])))-(((([02468][048])|([13579][26]))(00))|(d{2}(([02468][48])|([13579][26])))))|(((((0[13578])|(1[02]))-(([0-2][0-9])|(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|(02-(([0-1][0-9])|(2[0-8])))))-d{2}(([02468][1235679])|([13579][01345789])))$/; return r3.test(dateStr); }elseif(formatStr=="MM/dd/yyyy"||formatStr=="MM/DD/YYYY"){ var r4=/^((((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/([0-2][0-9])))\/(((([02468][048])|([13579][26]))(00))|(d{2}(([02468][48])|([13579][26])))))|(((((0[13578])|(1[02]))\/(([0-2][0-9])|(3[01])))|(((0[469])|(11))\/(([0-2][0-9])|(30)))|(02\/(([0-1][0-9])|(2[0-8])))))\/d{2}(([02468][1235679])|([13579][01345789])))$/; return r4.test(dateStr); }else{ alert("日期格式不正确!"); returnfalse; } } returnfalse; }

//案例 alert(Date.isValiDate('aaaa-58-29','yyyy-MM-dd'));

推荐阅读