Js获取当前日期时间及其它操作

本文介绍JavaScript中日期时间的处理方法,包括获取当前日期时间、日期格式化、日期计算、比较日期差等实用功能,并提供了完整的代码实现。
  1. Js获取当前日期时间及其它操作2008-07-28 17:202008-06-11 17:24var myDate = new Date();
  2. myDate.getYear();        //获取当前年份(2位)
  3. myDate.getFullYear();    //获取完整的年份(4位,1970-????)
  4. myDate.getMonth();       //获取当前月份(0-11,0代表1月)
  5. myDate.getDate();        //获取当前日(1-31)
  6. myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
  7. myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)
  8. myDate.getHours();       //获取当前小时数(0-23)
  9. myDate.getMinutes();     //获取当前分钟数(0-59)
  10. myDate.getSeconds();     //获取当前秒数(0-59)
  11. myDate.getMilliseconds();    //获取当前毫秒数(0-999)
  12. myDate.toLocaleDateString();     //获取当前日期
  13. var mytime=myDate.toLocaleTimeString();     //获取当前时间
  14. myDate.toLocaleString( );        //获取日期与时间

    1. 日期时间脚本库方法列表
    2. Date.prototype.isLeapYear 判断闰年
    3. Date.prototype.Format 日期格式化
    4. Date.prototype.DateAdd 日期计算
    5. Date.prototype.DateDiff 比较日期差
    6. Date.prototype.toString 日期转字符串
    7. Date.prototype.toArray 日期分割为数组
    8. Date.prototype.DatePart 取日期的部分信息
    9. Date.prototype.MaxDayOfDate 取日期所在月的最大天数
    10. Date.prototype.WeekNumOfYear 判断日期所在年的第几周
    11. StringToDate 字符串转日期型
    12. IsValidDate 验证日期有效性
    13. CheckDateTime 完整日期时间检查
    14. daysBetween 日期天数差
    15. js代码:
    16. //---------------------------------------------------  
    17. // 判断闰年  
    18. //---------------------------------------------------  
    19. Date.prototype.isLeapYear = function()   
    20. {   
    21.     return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));   
    22. }   
    23.   
    24. //---------------------------------------------------  
    25. // 日期格式化  
    26. // 格式 YYYY/yyyy/YY/yy 表示年份  
    27. // MM/M 月份  
    28. // W/w 星期  
    29. // dd/DD/d/D 日期  
    30. // hh/HH/h/H 时间  
    31. // mm/m 分钟  
    32. // ss/SS/s/S 秒  
    33. //---------------------------------------------------  
    34. Date.prototype.Format = function(formatStr)   
    35. {   
    36.     var str = formatStr;   
    37.     var Week = ['日','一','二','三','四','五','六'];  
    38.   
    39.     str=str.replace(/yyyy|YYYY/,this.getFullYear());   
    40.     str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));   
    41.   
    42.     str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());   
    43.     str=str.replace(/M/g,this.getMonth());   
    44.   
    45.     str=str.replace(/w|W/g,Week[this.getDay()]);   
    46.   
    47.     str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());   
    48.     str=str.replace(/d|D/g,this.getDate());   
    49.   
    50.     str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());   
    51.     str=str.replace(/h|H/g,this.getHours());   
    52.     str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());   
    53.     str=str.replace(/m/g,this.getMinutes());   
    54.   
    55.     str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());   
    56.     str=str.replace(/s|S/g,this.getSeconds());   
    57.   
    58.     return str;   
    59. }   
    60.   
    61. //+---------------------------------------------------  
    62. //| 求两个时间的天数差 日期格式为 YYYY-MM-dd   
    63. //+---------------------------------------------------  
    64. function daysBetween(DateOne,DateTwo)  
    65. {   
    66.     var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));  
    67.     var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);  
    68.     var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));  
    69.   
    70.     var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));  
    71.     var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);  
    72.     var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));  
    73.   
    74.     var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
    75.     return Math.abs(cha);  
    76. }  
    77.   
    78.   
    79. //+---------------------------------------------------  
    80. //| 日期计算  
    81. //+---------------------------------------------------  
    82. Date.prototype.DateAdd = function(strInterval, Number) {   
    83.     var dtTmp = this;  
    84.     switch (strInterval) {   
    85.         case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
    86.         case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
    87.         case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
    88.         case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
    89.         case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
    90.         case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
    91.         case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
    92.         case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
    93.     }  
    94. }  
    95.   
    96. //+---------------------------------------------------  
    97. //| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串  
    98. //+---------------------------------------------------  
    99. Date.prototype.DateDiff = function(strInterval, dtEnd) {   
    100.     var dtStart = this;  
    101.     if (typeof dtEnd == 'string' )//如果是字符串转换为日期型  
    102.     {   
    103.         dtEnd = StringToDate(dtEnd);  
    104.     }  
    105.     switch (strInterval) {   
    106.         case 's' :return parseInt((dtEnd - dtStart) / 1000);  
    107.         case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
    108.         case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
    109.         case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
    110.         case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
    111.         case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
    112.         case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
    113.     }  
    114. }  
    115.   
    116. //+---------------------------------------------------  
    117. //| 日期输出字符串,重载了系统的toString方法  
    118. //+---------------------------------------------------  
    119. Date.prototype.toString = function(showWeek)  
    120. {   
    121.     var myDate= this;  
    122.     var str = myDate.toLocaleDateString();  
    123.     if (showWeek)  
    124.     {   
    125.         var Week = ['日','一','二','三','四','五','六'];  
    126.         str += ' 星期' + Week[myDate.getDay()];  
    127.     }  
    128.     return str;  
    129. }  
    130.   
    131. //+---------------------------------------------------  
    132. //| 日期合法性验证  
    133. //| 格式为:YYYY-MM-DD或YYYY/MM/DD  
    134. //+---------------------------------------------------  
    135. function IsValidDate(DateStr)   
    136. {   
    137.     var sDate=DateStr.replace(/(^/s+|/s+$)/g,''); //去两边空格;   
    138.     if(sDate==''return true;   
    139.     //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''   
    140.     //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式   
    141.     var s = sDate.replace(/[/d]{ 4,4 }[/-/]{ 1 }[/d]{ 1,2 }[/-/]{ 1 }[/d]{ 1,2 }/g,'');   
    142.     if (s==''//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D   
    143.     {   
    144.         var t=new Date(sDate.replace(//-/g,'/'));   
    145.         var ar = sDate.split(/[-/:]/);   
    146.         if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())   
    147.         {   
    148.             //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
    149.             return false;   
    150.         }   
    151.     }   
    152.     else   
    153.     {   
    154.         //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
    155.         return false;   
    156.     }   
    157.     return true;   
    158. }   
    159.   
    160. //+---------------------------------------------------  
    161. //| 日期时间检查  
    162. //| 格式为:YYYY-MM-DD HH:MM:SS  
    163. //+---------------------------------------------------  
    164. function CheckDateTime(str)  
    165. {   
    166.     var reg = /^(/d+)-(/d{ 1,2 })-(/d{ 1,2 }) (/d{ 1,2 }):(/d{ 1,2 }):(/d{ 1,2 })$/;   
    167.     var r = str.match(reg);   
    168.     if(r==null)return false;   
    169.     r[2]=r[2]-1;   
    170.     var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);   
    171.     if(d.getFullYear()!=r[1])return false;   
    172.     if(d.getMonth()!=r[2])return false;   
    173.     if(d.getDate()!=r[3])return false;   
    174.     if(d.getHours()!=r[4])return false;   
    175.     if(d.getMinutes()!=r[5])return false;   
    176.     if(d.getSeconds()!=r[6])return false;   
    177.     return true;   
    178. }   
    179.   
    180. //+---------------------------------------------------  
    181. //| 把日期分割成数组  
    182. //+---------------------------------------------------  
    183. Date.prototype.toArray = function()  
    184. {   
    185.     var myDate = this;  
    186.     var myArray = Array();  
    187.     myArray[0] = myDate.getFullYear();  
    188.     myArray[1] = myDate.getMonth();  
    189.     myArray[2] = myDate.getDate();  
    190.     myArray[3] = myDate.getHours();  
    191.     myArray[4] = myDate.getMinutes();  
    192.     myArray[5] = myDate.getSeconds();  
    193.     return myArray;  
    194. }  
    195.   
    196. //+---------------------------------------------------  
    197. //| 取得日期数据信息  
    198. //| 参数 interval 表示数据类型  
    199. //| y 年 m月 d日 w星期 ww周 h时 n分 s秒  
    200. //+---------------------------------------------------  
    201. Date.prototype.DatePart = function(interval)  
    202. {   
    203.     var myDate = this;  
    204.     var partStr='';  
    205.     var Week = ['日','一','二','三','四','五','六'];  
    206.     switch (interval)  
    207.     {   
    208.         case 'y' :partStr = myDate.getFullYear();break;  
    209.         case 'm' :partStr = myDate.getMonth()+1;break;  
    210.         case 'd' :partStr = myDate.getDate();break;  
    211.         case 'w' :partStr = Week[myDate.getDay()];break;  
    212.         case 'ww' :partStr = myDate.WeekNumOfYear();break;  
    213.         case 'h' :partStr = myDate.getHours();break;  
    214.         case 'n' :partStr = myDate.getMinutes();break;  
    215.         case 's' :partStr = myDate.getSeconds();break;  
    216.     }  
    217.     return partStr;  
    218. }  
    219.   
    220. //+---------------------------------------------------  
    221. //| 取得当前日期所在月的最大天数  
    222. //+---------------------------------------------------  
    223. Date.prototype.MaxDayOfDate = function()  
    224. {   
    225.     var myDate = this;  
    226.     var ary = myDate.toArray();  
    227.     var date1 = (new Date(ary[0],ary[1]+1,1));  
    228.     var date2 = date1.dateAdd(1,'m',1);  
    229.     var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));  
    230.     return result;  
    231. }  
    232.   
    233. //+---------------------------------------------------  
    234. //| 取得当前日期所在周是一年中的第几周  
    235. //+---------------------------------------------------  
    236. Date.prototype.WeekNumOfYear = function()  
    237. {   
    238.     var myDate = this;  
    239.     var ary = myDate.toArray();  
    240.     var year = ary[0];  
    241.     var month = ary[1]+1;  
    242.     var day = ary[2];  
    243.     document.write('< script language=VBScript/> /n');  
    244.     document.write('myDate = DateValue(''+month+'-'+day+'-'+year+'') /n');  
    245.     document.write('result = DatePart('ww', myDate) /n');  
    246.     document.write(' /n');  
    247.     return result;  
    248. }  
    249.   
    250. //+---------------------------------------------------  
    251. //| 字符串转成日期类型   
    252. //| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
    253. //+---------------------------------------------------  
    254. function StringToDate(DateStr)  
    255. {   
    256.   
    257.     var converted = Date.parse(DateStr);  
    258.     var myDate = new Date(converted);  
    259.     if (isNaN(myDate))  
    260.     {   
    261.         //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
    262.         var arys= DateStr.split('-');  
    263.         myDate = new Date(arys[0],--arys[1],arys[2]);  
    264.     }  
    265.     return myDate;  
    266. }  

  1. 日期时间脚本库方法列表
  2. Date.prototype.isLeapYear 判断闰年
  3. Date.prototype.Format 日期格式化
  4. Date.prototype.DateAdd 日期计算
  5. Date.prototype.DateDiff 比较日期差
  6. Date.prototype.toString 日期转字符串
  7. Date.prototype.toArray 日期分割为数组
  8. Date.prototype.DatePart 取日期的部分信息
  9. Date.prototype.MaxDayOfDate 取日期所在月的最大天数
  10. Date.prototype.WeekNumOfYear 判断日期所在年的第几周
  11. StringToDate 字符串转日期型
  12. IsValidDate 验证日期有效性
  13. CheckDateTime 完整日期时间检查
  14. daysBetween 日期天数差
  15. js代码:
  16. //---------------------------------------------------  
  17. // 判断闰年  
  18. //---------------------------------------------------  
  19. Date.prototype.isLeapYear = function()   
  20. {   
  21.     return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));   
  22. }   
  23.   
  24. //---------------------------------------------------  
  25. // 日期格式化  
  26. // 格式 YYYY/yyyy/YY/yy 表示年份  
  27. // MM/M 月份  
  28. // W/w 星期  
  29. // dd/DD/d/D 日期  
  30. // hh/HH/h/H 时间  
  31. // mm/m 分钟  
  32. // ss/SS/s/S 秒  
  33. //---------------------------------------------------  
  34. Date.prototype.Format = function(formatStr)   
  35. {   
  36.     var str = formatStr;   
  37.     var Week = ['日','一','二','三','四','五','六'];  
  38.   
  39.     str=str.replace(/yyyy|YYYY/,this.getFullYear());   
  40.     str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));   
  41.   
  42.     str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());   
  43.     str=str.replace(/M/g,this.getMonth());   
  44.   
  45.     str=str.replace(/w|W/g,Week[this.getDay()]);   
  46.   
  47.     str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());   
  48.     str=str.replace(/d|D/g,this.getDate());   
  49.   
  50.     str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());   
  51.     str=str.replace(/h|H/g,this.getHours());   
  52.     str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());   
  53.     str=str.replace(/m/g,this.getMinutes());   
  54.   
  55.     str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());   
  56.     str=str.replace(/s|S/g,this.getSeconds());   
  57.   
  58.     return str;   
  59. }   
  60.   
  61. //+---------------------------------------------------  
  62. //| 求两个时间的天数差 日期格式为 YYYY-MM-dd   
  63. //+---------------------------------------------------  
  64. function daysBetween(DateOne,DateTwo)  
  65. {   
  66.     var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));  
  67.     var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);  
  68.     var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));  
  69.   
  70.     var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));  
  71.     var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);  
  72.     var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));  
  73.   
  74.     var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
  75.     return Math.abs(cha);  
  76. }  
  77.   
  78.   
  79. //+---------------------------------------------------  
  80. //| 日期计算  
  81. //+---------------------------------------------------  
  82. Date.prototype.DateAdd = function(strInterval, Number) {   
  83.     var dtTmp = this;  
  84.     switch (strInterval) {   
  85.         case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
  86.         case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
  87.         case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
  88.         case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
  89.         case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
  90.         case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  91.         case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  92.         case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  93.     }  
  94. }  
  95.   
  96. //+---------------------------------------------------  
  97. //| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串  
  98. //+---------------------------------------------------  
  99. Date.prototype.DateDiff = function(strInterval, dtEnd) {   
  100.     var dtStart = this;  
  101.     if (typeof dtEnd == 'string' )//如果是字符串转换为日期型  
  102.     {   
  103.         dtEnd = StringToDate(dtEnd);  
  104.     }  
  105.     switch (strInterval) {   
  106.         case 's' :return parseInt((dtEnd - dtStart) / 1000);  
  107.         case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
  108.         case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
  109.         case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
  110.         case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
  111.         case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
  112.         case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
  113.     }  
  114. }  
  115.   
  116. //+---------------------------------------------------  
  117. //| 日期输出字符串,重载了系统的toString方法  
  118. //+---------------------------------------------------  
  119. Date.prototype.toString = function(showWeek)  
  120. {   
  121.     var myDate= this;  
  122.     var str = myDate.toLocaleDateString();  
  123.     if (showWeek)  
  124.     {   
  125.         var Week = ['日','一','二','三','四','五','六'];  
  126.         str += ' 星期' + Week[myDate.getDay()];  
  127.     }  
  128.     return str;  
  129. }  
  130.   
  131. //+---------------------------------------------------  
  132. //| 日期合法性验证  
  133. //| 格式为:YYYY-MM-DD或YYYY/MM/DD  
  134. //+---------------------------------------------------  
  135. function IsValidDate(DateStr)   
  136. {   
  137.     var sDate=DateStr.replace(/(^/s+|/s+$)/g,''); //去两边空格;   
  138.     if(sDate==''return true;   
  139.     //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''   
  140.     //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式   
  141.     var s = sDate.replace(/[/d]{ 4,4 }[/-/]{ 1 }[/d]{ 1,2 }[/-/]{ 1 }[/d]{ 1,2 }/g,'');   
  142.     if (s==''//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D   
  143.     {   
  144.         var t=new Date(sDate.replace(//-/g,'/'));   
  145.         var ar = sDate.split(/[-/:]/);   
  146.         if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())   
  147.         {   
  148.             //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
  149.             return false;   
  150.         }   
  151.     }   
  152.     else   
  153.     {   
  154.         //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
  155.         return false;   
  156.     }   
  157.     return true;   
  158. }   
  159.   
  160. //+---------------------------------------------------  
  161. //| 日期时间检查  
  162. //| 格式为:YYYY-MM-DD HH:MM:SS  
  163. //+---------------------------------------------------  
  164. function CheckDateTime(str)  
  165. {   
  166.     var reg = /^(/d+)-(/d{ 1,2 })-(/d{ 1,2 }) (/d{ 1,2 }):(/d{ 1,2 }):(/d{ 1,2 })$/;   
  167.     var r = str.match(reg);   
  168.     if(r==null)return false;   
  169.     r[2]=r[2]-1;   
  170.     var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);   
  171.     if(d.getFullYear()!=r[1])return false;   
  172.     if(d.getMonth()!=r[2])return false;   
  173.     if(d.getDate()!=r[3])return false;   
  174.     if(d.getHours()!=r[4])return false;   
  175.     if(d.getMinutes()!=r[5])return false;   
  176.     if(d.getSeconds()!=r[6])return false;   
  177.     return true;   
  178. }   
  179.   
  180. //+---------------------------------------------------  
  181. //| 把日期分割成数组  
  182. //+---------------------------------------------------  
  183. Date.prototype.toArray = function()  
  184. {   
  185.     var myDate = this;  
  186.     var myArray = Array();  
  187.     myArray[0] = myDate.getFullYear();  
  188.     myArray[1] = myDate.getMonth();  
  189.     myArray[2] = myDate.getDate();  
  190.     myArray[3] = myDate.getHours();  
  191.     myArray[4] = myDate.getMinutes();  
  192.     myArray[5] = myDate.getSeconds();  
  193.     return myArray;  
  194. }  
  195.   
  196. //+---------------------------------------------------  
  197. //| 取得日期数据信息  
  198. //| 参数 interval 表示数据类型  
  199. //| y 年 m月 d日 w星期 ww周 h时 n分 s秒  
  200. //+---------------------------------------------------  
  201. Date.prototype.DatePart = function(interval)  
  202. {   
  203.     var myDate = this;  
  204.     var partStr='';  
  205.     var Week = ['日','一','二','三','四','五','六'];  
  206.     switch (interval)  
  207.     {   
  208.         case 'y' :partStr = myDate.getFullYear();break;  
  209.         case 'm' :partStr = myDate.getMonth()+1;break;  
  210.         case 'd' :partStr = myDate.getDate();break;  
  211.         case 'w' :partStr = Week[myDate.getDay()];break;  
  212.         case 'ww' :partStr = myDate.WeekNumOfYear();break;  
  213.         case 'h' :partStr = myDate.getHours();break;  
  214.         case 'n' :partStr = myDate.getMinutes();break;  
  215.         case 's' :partStr = myDate.getSeconds();break;  
  216.     }  
  217.     return partStr;  
  218. }  
  219.   
  220. //+---------------------------------------------------  
  221. //| 取得当前日期所在月的最大天数  
  222. //+---------------------------------------------------  
  223. Date.prototype.MaxDayOfDate = function()  
  224. {   
  225.     var myDate = this;  
  226.     var ary = myDate.toArray();  
  227.     var date1 = (new Date(ary[0],ary[1]+1,1));  
  228.     var date2 = date1.dateAdd(1,'m',1);  
  229.     var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));  
  230.     return result;  
  231. }  
  232.   
  233. //+---------------------------------------------------  
  234. //| 取得当前日期所在周是一年中的第几周  
  235. //+---------------------------------------------------  
  236. Date.prototype.WeekNumOfYear = function()  
  237. {   
  238.     var myDate = this;  
  239.     var ary = myDate.toArray();  
  240.     var year = ary[0];  
  241.     var month = ary[1]+1;  
  242.     var day = ary[2];  
  243.     document.write('< script language=VBScript/> /n');  
  244.     document.write('myDate = DateValue(''+month+'-'+day+'-'+year+'') /n');  
  245.     document.write('result = DatePart('ww', myDate) /n');  
  246.     document.write(' /n');  
  247.     return result;  
  248. }  
  249.   
  250. //+---------------------------------------------------  
  251. //| 字符串转成日期类型   
  252. //| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
  253. //+---------------------------------------------------  
  254. function StringToDate(DateStr)  
  255. {   
  256.   
  257.     var converted = Date.parse(DateStr);  
  258.     var myDate = new Date(converted);  
  259.     if (isNaN(myDate))  
  260.     {   
  261.         //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
  262.         var arys= DateStr.split('-');  
  263.         myDate = new Date(arys[0],--arys[1],arys[2]);  
  264.     }  
  265.     return myDate;  
  266. }  
内容概要:本文是一篇关于使用RandLANet模型对SensatUrban数据集进行点云语义分割的实战教程,系统介绍了从环境搭建、数据准备、模型训练与测试到精度评估的完整流程。文章详细说明了在Ubuntu系统下配置TensorFlow 2.2、CUDA及cuDNN等深度学习环境的方法,并指导用户下载和预处理SensatUrban数据集。随后,逐步讲解RandLANet代码的获取与运行方式,包括训练、测试命令的执行与参数含义,以及如何监控训练过程中的关键指标。最后,教程涵盖测试结果分析、向官方平台提交结果、解读评估报告及可视化效果等内容,并针对常见问题提供解决方案。; 适合人群:具备一定深度学习基础,熟悉Python编程和深度学习框架,从事计算机视觉或三维点云相关研究的学生、研究人员及工程师;适合希望动手实践点云语义分割项目的初学者与进阶者。; 使用场景及目标:①掌握RandLANet网络结构及其在点云语义分割任务中的应用;②学会完整部署一个点云分割项目,包括数据处理、模型训练、测试与性能评估;③为参与相关竞赛或科研项目提供技术支撑。; 阅读建议:建议读者结合提供的代码链接和密码访问完整资料,在本地或云端环境中边操作边学习,重点关注数据格式要求与训练参数设置,遇到问题时参考“常见问题与解决技巧”部分及时排查。
内容概要:本文详细介绍了三相异步电机SVPWM-DTC(空间矢量脉宽调制-直接转矩控制)的Simulink仿真实现方法,结合DTC响应快与SVPWM谐波小的优点,构建高性能电机控制系统。文章系统阐述了控制原理,包括定子磁链观测、转矩与磁链误差滞环比较、扇区判断及电压矢量选择,并通过SVPWM技术生成固定频率PWM信号,提升系统稳态性能。同时提供了完整的Simulink建模流程,涵盖电机本体、磁链观测器、误差比较、矢量选择、SVPWM调制、逆变器驱动等模块的搭建与参数设置,给出了仿真调试要点与预期结果,如电流正弦性、转矩响应快、磁链轨迹趋圆等,并提出了模型优化与扩展方向,如改进观测器、自适应滞环、弱磁控制和转速闭环等。; 适合人群:电气工程、自动化及相关专业本科生、研究生,从事电机控制算法开发的工程师,具备一定MATLAB/Simulink和电机控制理论基础的技术人员。; 使用场景及目标:①掌握SVPWM-DTC控制策略的核心原理与实现方式;②在Simulink中独立完成三相异步电机高性能控制系统的建模与仿真;③通过仿真验证控制算法有效性,为实际工程应用提供设计依据。; 阅读建议:学习过程中应结合文中提供的电机参数和模块配置逐步搭建模型,重点关注磁链观测、矢量选择表和SVPWM调制的实现细节,仿真时注意滞环宽度与开关频率的调试,建议配合MATLAB官方工具箱文档进行参数校准与结果分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值