js 时间函数 及相关运算大全

var myDate = new 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();    
//获取当前日期
var
mytime=myDate.toLocaleTimeString();    
//获取当前时间
myDate.toLocaleString(
);       
//获取日期与时间

//不错的时间格式化函数

function
DatePart(interval){  
 var myDate = new Date();
    var
partStr=''; 
    var Week =
['日','一','二','三','四','五','六']; 
    switch
(interval){  
       
case 'y' :partStr = myDate.getYear();break; 
  case 'Y' :partStr =
myDate.getFullYear();break;
       
case 'm' :partStr = myDate.getMonth()+1;break;
       
case 'M' :
     var
myDatem=myDate.getMonth()+1;
     partStr
=myDatem>9?myDatem:'0'+myDatem.toString();
     break;

case 'd' :partStr = myDate.getDate();break; 
  case 'D' :
     partStr
=myDate.getDate()>9?myDate.getDate():'0'+myDate.getDate().toString();

break;

case 'w' :partStr =
Week[myDate.getDay()];break; 
       
case 'ww' :partStr =
myDate.WeekNumOfYear();break; 
       
case 'h' :partStr =
myDate.getHours();break; 
       
case 'n' :partStr =
myDate.getMinutes();break; 
       
case 's' :partStr =
myDate.getSeconds();break; 
   

    return
partStr; 
}

日期时间脚本库方法列表

Date.prototype.isLeapYear 判断闰年
Date.prototype.Format 日期格式化
Date.prototype.DateAdd 日期计算
Date.prototype.DateDiff 比较日期差
Date.prototype.toString 日期转字符串
Date.prototype.toArray 日期分割为数组
Date.prototype.DatePart 取日期的部分信息
Date.prototype.MaxDayOfDate 取日期所在月的最大天数
Date.prototype.WeekNumOfYear 判断日期所在年的第几周
StringToDate 字符串转日期型
IsValidDate 验证日期有效性
CheckDateTime 完整日期时间检查
daysBetween 日期天数差

js代码:

//---------------------------------------------------

// 判断闰年 
//---------------------------------------------------

Date.prototype.isLeapYear =
function()  
{  
    return
(0==this.getYear()%4&&((this.getYear()0!=0)||(this.getYear()@0==0)));

}  
 
//---------------------------------------------------

// 日期格式化 
// 格式 YYYY/yyyy/YY/yy 表示年份 
// MM/M 月份 
// W/w 星期 
// dd/DD/d/D 日期 
// hh/HH/h/H 时间 
// mm/m 分钟 
// ss/SS/s/S 秒 
//---------------------------------------------------

Date.prototype.Format =
function(formatStr)  
{  
    var str =
formatStr;  
    var Week =
['日','一','二','三','四','五','六']; 
 
   
str=str.replace(/yyyy|YYYY/,this.getFullYear());

str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear()
% 100).toString():'0' + (this.getYear() %
100));  
 
   
str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0'
+ this.getMonth());  
   
str=str.replace(/M/g,this.getMonth());

str=str.replace(/w|W/g,Week[this.getDay()]);

str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0'
+ this.getDate());  
   
str=str.replace(/d|D/g,this.getDate());

str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0'
+ this.getHours());  
   
str=str.replace(/h|H/g,this.getHours());

str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'
+ this.getMinutes());  
   
str=str.replace(/m/g,this.getMinutes());

str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'
+ this.getSeconds());  
   
str=str.replace(/s|S/g,this.getSeconds());

return
str;  
}  
 
//+---------------------------------------------------

//| 求两个时间的天数差 日期格式为
YYYY-MM-dd  
//+---------------------------------------------------

function daysBetween(DateOne,DateTwo) 
{  
    var OneMonth
= DateOne.substring(5,DateOne.lastIndexOf
('-')); 
    var OneDay =
DateOne.substring(DateOne.length,DateOne.lastIndexOf
('-')+1); 
    var OneYear
= DateOne.substring(0,DateOne.indexOf
('-')); 
 
    var TwoMonth
= DateTwo.substring(5,DateTwo.lastIndexOf
('-')); 
    var TwoDay =
DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf
('-')+1); 
    var TwoYear
= DateTwo.substring(0,DateTwo.indexOf
('-')); 
 
    var
cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)-
Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);

return
Math.abs(cha); 
}

dateAdd 方法
返回已添加指定时间间隔的日期对象。
dateObj.dateAdd(interval, number)
参数
dateObj
必选项。任意 Date 对象。
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
dateDiff 方法
返回两个日期对象之间的时间间隔。
dateObj.dateDiff(interval, dateObj2)
参数
interval
必选项。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
dateObj, dateObj2
必选项。日期对象。用于计算的两个日期对象。
设置
interval 参数可以有以下值:

设置 描述
y
q 季度
m
d
w
h 小时
n 分钟
s
ms 毫秒

//+---------------------------------------------------

//| 日期计算 
//+---------------------------------------------------

Date.prototype.DateAdd = function(strInterval, Number)
{  
    var dtTmp =
this; 
    switch
(strInterval) {  
       
case 's' :return new Date(Date.parse(dtTmp) + (1000 *
Number)); 
       
case 'n' :return new Date(Date.parse(dtTmp) + (60000 *
Number)); 
       
case 'h' :return new Date(Date.parse(dtTmp) + (3600000 *
Number)); 
       
case 'd' :return new Date(Date.parse(dtTmp) + (86400000 *
Number)); 
       
case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) *
Number)); 
       
case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) +
Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(),
dtTmp.getSeconds()); 
       
case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) +
Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(),
dtTmp.getSeconds()); 
       
case 'y' :return new Date((dtTmp.getFullYear() + Number),
dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(),
dtTmp.getMinutes(), dtTmp.getSeconds()); 
   


 
//+---------------------------------------------------

//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串 
//+---------------------------------------------------

Date.prototype.DateDiff = function(strInterval, dtEnd)
{  
    var dtStart
= this; 
    if (typeof
dtEnd == 'string' )//如果是字符串转换为日期型 
   
{  
       
dtEnd = StringToDate(dtEnd); 
   

    switch
(strInterval) {  
       
case 's' :return parseInt((dtEnd - dtStart) /
1000); 
       
case 'n' :return parseInt((dtEnd - dtStart) /
60000); 
       
case 'h' :return parseInt((dtEnd - dtStart) /
3600000); 
       
case 'd' :return parseInt((dtEnd - dtStart) /
86400000); 
       
case 'w' :return parseInt((dtEnd - dtStart) / (86400000 *
7)); 
       
case 'm' :return
(dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12)
- (dtStart.getMonth()+1); 
       
case 'y' :return dtEnd.getFullYear() -
dtStart.getFullYear(); 
   


 
//+---------------------------------------------------

//| 日期输出字符串,重载了系统的toString方法 
//+---------------------------------------------------

Date.prototype.toString =
function(showWeek) 
{  
    var myDate=
this; 
    var str =
myDate.toLocaleDateString(); 
    if
(showWeek) 
   
{  
       
var Week = ['日','一','二','三','四','五','六']; 
       
str += ' 星期' + Week[myDate.getDay()]; 
   

    return
str; 

 
//+---------------------------------------------------

//| 日期合法性验证 
//| 格式为:YYYY-MM-DD或YYYY/MM/DD 
//+---------------------------------------------------

function
IsValidDate(DateStr)  
{  
    var
sDate=DateStr.replace(/(^\s+|\s+$)/g,'');
//去两边空格;  
   
if(sDate=='') return
true;  
   
//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''

//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式

var s =
sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2
}/g,'');  
    if (s=='')
//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D

{  
       
var t=new
Date(sDate.replace(/\-/g,'/'));

var ar =
sDate.split(/[-/:]/);  
       
if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] !=
t.getDate())  
       
{  
           
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');

return false;  
       
}  
   
}  
   
else  
   
{  
       
//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');

return false;  
   
}  
    return
true;  
}  
 
//+---------------------------------------------------

//| 日期时间检查 
//| 格式为:YYYY-MM-DD HH:MM:SS 
//+---------------------------------------------------

function CheckDateTime(str) 
{  
    var reg =
/^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2
})$/;  
    var r =
str.match(reg);  
   
if(r==null)return false;  
   
r[2]=r[2]-1;  
    var d= new
Date(r[1],r[2],r[3],r[4],r[5],r[6]);

if(d.getFullYear()!=r[1])return
false;  
   
if(d.getMonth()!=r[2])return
false;  
   
if(d.getDate()!=r[3])return
false;  
   
if(d.getHours()!=r[4])return
false;  
   
if(d.getMinutes()!=r[5])return
false;  
   
if(d.getSeconds()!=r[6])return
false;  
    return
true;  
}  
 
//+---------------------------------------------------

//| 把日期分割成数组 
//+---------------------------------------------------

Date.prototype.toArray = function() 
{  
    var myDate =
this; 
    var myArray
= Array(); 
    myArray[0] =
myDate.getFullYear(); 
    myArray[1] =
myDate.getMonth(); 
    myArray[2] =
myDate.getDate(); 
    myArray[3] =
myDate.getHours(); 
    myArray[4] =
myDate.getMinutes(); 
    myArray[5] =
myDate.getSeconds(); 
    return
myArray; 

 
//+---------------------------------------------------

//| 取得日期数据信息 
//| 参数 interval 表示数据类型 
//| y 年 m月 d日 w星期 ww周 h时 n分 s秒 
//+---------------------------------------------------

Date.prototype.DatePart =
function(interval) 
{  
    var myDate =
this; 
    var
partStr=''; 
    var Week =
['日','一','二','三','四','五','六']; 
    switch
(interval) 
   
{  
       
case 'y' :partStr =
myDate.getFullYear();break; 
       
case 'm' :partStr =
myDate.getMonth()+1;break; 
       
case 'd' :partStr = myDate.getDate();break; 
       
case 'w' :partStr =
Week[myDate.getDay()];break; 
       
case 'ww' :partStr =
myDate.WeekNumOfYear();break; 
       
case 'h' :partStr =
myDate.getHours();break; 
       
case 'n' :partStr =
myDate.getMinutes();break; 
       
case 's' :partStr =
myDate.getSeconds();break; 
   

    return
partStr; 

 
//+---------------------------------------------------

//| 取得当前日期所在月的最大天数 
//+---------------------------------------------------

Date.prototype.MaxDayOfDate = function() 
{  
    var myDate =
this; 
    var ary =
myDate.toArray(); 
    var date1 =
(new Date(ary[0],ary[1]+1,1)); 
    var date2 =
date1.dateAdd(1,'m',1); 
    var result =
dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));

return
result; 

 
//+---------------------------------------------------

//| 取得当前日期所在周是一年中的第几周 
//+---------------------------------------------------

Date.prototype.WeekNumOfYear = function() 
{  
    var myDate =
this; 
    var ary =
myDate.toArray(); 
    var year =
ary[0]; 
    var month =
ary[1]+1; 
    var day =
ary[2]; 
   
document.write('< script language=VBScript\>
\n'); 
   
document.write('myDate = Datue(''+month+'-'+day+'-'+year+'')
\n'); 
   
document.write('result = DatePart('ww', myDate)
\n'); 
   
document.write(' \n'); 
    return
result; 

 
//+---------------------------------------------------

//| 字符串转成日期类型  
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd
YYYY-MM-dd 
//+---------------------------------------------------

function StringToDate(DateStr) 
{  
 
    var
converted = Date.parse(DateStr); 
    var myDate =
new Date(converted); 
    if
(isNaN(myDate)) 
   
{  
       
//var delimCahar =
DateStr.indexOf('/')!=-1?'/':'-'; 
       
var arys= DateStr.split('-'); 
       
myDate = new
Date(arys[0],--arys[1],arys[2]); 
   

    return
myDate; 
}

若要显示:当前日期加时间(如:2012-06-12 12:00)

function CurentTime()
    {
       
var now = new Date();

var year =
now.getFullYear();      
//年
       
var month = now.getMonth() +
1;    
//月
       
var day =
now.getDate();           
//日

var hh =
now.getHours();           
//时
       
var mm =
now.getMinutes();         
//分

var clock = year + "-";

if(month < 10)
           
clock += "0";

clock += month + "-";

if(day < 10)
           
clock += "0";

clock += day + " ";

if(hh < 10)
           
clock += "0";

clock += hh + ":";
       
if (mm < 10) clock += '0';
       
clock += mm;
       
return(clock);
    }

js 时间函数 及相关运算大全的更多相关文章

  1. js 日期,时间函数 及相关运算大全

    一.在js中如何比较两个时间字符串的大小 方法一: function CompareDate(d1,d2){     return ((new Date(d1.replace(/-/g,"/ ...

  2. js获取当前时间,js时间函数

    Js获取当前日期时间及其它操作,js时间函数 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...

  3. js 时间函数封装

    html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  4. js时间函数

    时间 new Date() 获取时间,可以理解为是系统默认的函数. 从小括号里面获取系统时间日期,相当于在调用系统默认的函数. 年 getFullYear() 注意,有Full. 月 getMonth ...

  5. JS 时间函数 / 格式化时间戳

    处理时间主要使用时间对象 Date , 其提供两个静态方法 Date.now() //获得当前时间戳 Date.parse() //将字符串转化成时间戳 创建对象 new Date(); // 返回当 ...

  6. Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2

    //2019.07.10python数据分析基础——numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面:(1)numpy—— ...

  7. MySQL日期时间函数大全(转)

    MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1 ...

  8. [转载]ORACLE日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年 ...

  9. js时间格式化函数,支持Unix时间戳

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 配置好maven后,设置tomcat:run运行程序

    1.要在intellij idea使用maven,同样是先要配置maven的路径,不过intellij idea已经集成maven插件了,省去了安装的麻烦 2.创建maven web项目 点击fini ...

  2. request对象方法详解

    自己整理的 javax.servlet.http.HttpServletrequest 所有方法,欢迎收藏! 方法名 说明 isUserInRole 判断认证后的用户是否属于某一成员组 getAttr ...

  3. GetTickCount() 函数的作用和用法

    今天项目中60秒倒计时模块需要用到GetTickCount(),这个函数,在此做下整理和总结. 1.定义 For Release configurations, this function retur ...

  4. 必应代码搜索 Bing Code Search 安装

    微软这几天推出基于bing搜索引擎的  Bing Code Search ,可直接在浏览器上搜索和运行代码.目前中文版必应无法使用本功能,有需要的同学可以转到英文版进行搜索: 英文版必应:  http ...

  5. django开发框架之jumpserver

    发现一个不错的开源堡垒机 jumpserver: https://github.com/ibuler/jumpserver 最开始看的是jumpserver2.0.0 版本,具体的实现方式是: 1. ...

  6. Linux系统性能测试工具sysbench

    1.CPU性能测试 sysbench --test=cpu --cpu-max-prime= --num-threads= run 2.内存性能测试 sysbench --test=memory -- ...

  7. ASP.NET中常用重置数据的方法

    aspx: <asp:Repeater ID="rptProlist" runat="server" onitemdatabound="rptP ...

  8. Spring文件上传出错:java.lang.ClassCastException: org.apache.catalina.connector.Request

    java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.spri ...

  9. microchip PIC芯片使用方法

    pickit3调试器使用: http://www.eeboard.com/evaluation/pickit3debug/1/ MPLAB环境使用: 1.代码折叠功能 2.代码补全功能 3.函数跳转功 ...

  10. PHP+jQuery+Ajax实现用户登录与退…

    用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录,登录成功后只刷新页面局部,从而提升了用户体验度.本文将使用PHP和jQuery来实现登录和退出功能. 查看演示DEM ...