Javascript日期函数
Date(日期)对象可以使用Date()构造器来创建,在前面的教程中我们已经介绍了Date()构造器,这里就不重复叙述。它没有参数,返回的数值就是当前的日期。下面的表格显示 了为日期构造器的有效输入:
var today = new Date(); 返回当前的日期和时间
var newyear = new Date(December 31, 1998 23:59:59); 输入的是表单的字符串 “月 日,年 小时:分钟:秒” var bday = new Date(75, 1, 16); 参数是年份,月,日
var bday = new Date(75, 1, 16, 12, 0, 0); 参数是年份,月,日,小时,分钟,秒
这里作点补充:月份是从0开始 的,比如一月份=0,二月份=1,三月份=3等等。
从上面可以看出创建一个日期对象是相对地简单,以下的表格是一系列的函数可以用于改变或者访问这些对象的属性:
日期访问方法
Method(方法)
Description (描述)
Value(数值)
getYear()
返回年份的最后两位数字
2001
getMonth()
返回年份中的第几月(0到11)
5
getDate()
返回月份中的第几日(1到31)
2
getDay()
返回星期中的第几天 (0到6)
6
getTimezoneOffset()
返回当地时间与格林尼治天文台平均时间的差别
-480 (-8h)
getHours()
返回一天中的时针点数(0到23)
16
getMinutes()
返回分钟 (0..59)
8
getSeconds()
返回时间的秒 (0到59)
24
getTime()
返回自从公元1970年1月1日的毫秒数
991469304470
这里注意:IE浏览 器的一些版本返回Timezoneoffset数值是用错误的符号,比如用”-”代替”+”等等。
日期设置方法
setDate()
设置 每月中的第几天(从0到30)
setHours()
设置小时(从0到23)
setMinutes()
设置分钟(从0到59)
setMonth()
设置月份(从0到11)
setSeconds()
设置秒数(从0到59)
setTime()
设置时间(从公元以来的毫秒数)
setYear()
设置年份
其它的日期方法
parse
转化日期字符串为自从公元以来的毫秒数,比如Date.parse(“date string”)
toString()
Sat Jun 2 16:08:24 UTC+0800 2001
toGMTString()
Sat, 2 Jun 2001 08:08:24 UTC
toLocaleString()
2001年6月2日 16:08:24
所有的这些函数引用于独立的日期对象。如果你具有深厚的Java编程 背景,那么你可以将它们认为是Date类的一些公共的方法而已。下面给出一个典型的例子来设置日期对象到当前时间加1年:
var nextYear = new Date(); // 初始化日期对象
Date(日期)对象可以使用Date()构造器来创建,在前面的教程中我们已经介绍了Date()构造器,这里就不重复叙述。它没有参数,返回的数值就是当前的日期。下面的表格
var today = new Date(); 返回当前的日期和时间
var newyear = new Date(December 31, 1998 23:59:59); 输入的是表单的字符串 “月 日,年 小时:分钟:秒” var bday = new Date(75, 1, 16); 参数是年份,月,日
var bday = new Date(75, 1, 16, 12, 0, 0); 参数是年份,月,日,小时,分钟,秒
这里作点补充:月份是从0
从上面可以看出创建一个日期对象是相对地简单,以下的表格是一系列的函数可以用于改变或者访问这些对象的属性:
日期访问
Method(方法)
Description (描述)
Value(数值)
getYear()
返回年份的最后两位数字
2001
getMonth()
返回年份中的第几月(0到11)
5
getDate()
返回月份中的第几日(1到31)
2
getDay()
返回星期中的第几天 (0到6)
6
getTimezoneOffset()
返回当地时间与格林尼治天文台平均时间的差别
-480 (-8h)
getHours()
返回一天中的时针点数(0到23)
16
getMinutes()
返回分钟 (0..59)
8
getSeconds()
返回时间的秒 (0到59)
24
getTime()
返回自从公元1970年1月1日的毫秒数
991469304470
这里注意:IE
日期设置方法
setDate()
setHours()
设置小时(从0到23)
setMinutes()
设置分钟(从0到59)
setMonth()
设置月份(从0到11)
setSeconds()
设置秒数(从0到59)
setTime()
设置时间(从公元以来的毫秒数)
setYear()
设置年份
其它的日期方法
parse
转化日期字符串为自从公元以来的毫秒数,比如Date.parse(“date string”)
toString()
Sat Jun 2 16:08:24 UTC+0800 2001
toGMTString()
Sat, 2 Jun 2001 08:08:24 UTC
toLocaleString()
2001年6月2日 16:08:24
所有的这些函数引用于独立的日期对象。如果你具有深厚的Java
var nextYear = new Date(); // 初始化日期对象
nextyear.setYear(nextYear.getYear() + 1); // 增加1年
实际上,parse函数是Date对象的一个方法,而不是一个独立的日期变量,如果使用Java术语,它就称为Date类的一个静态方法。这个正是我们为什么使用Date.pase()而不使用somedate.parse()的原因啦。
摘自:http://www.cnblogs.com/raymond19840709/archive/2007/08/31/877180.html
实例:把一个UTC(span控件中)时间显示为本地时间。
1<span id='LastLoginDateLabel' runat =server></span>
2
3
4<script type="text/javascript" >
5 function FormatLastSeen() {
var lastTime = document.getElementById('<%=_userViewForm.FindControl("_lastLoginDateLabel").ClientID %>');
var UTCValue = new Date(lastTime.innerText.replace(/-/g, "/"));
var localTime = UTCValue.getTime();
var currentTime = new Date();
var localOffset = currentTime.getTimezoneOffset() * 60000;
var bombay = localTime - localOffset;
var disTime = new Date(bombay);
var difference = currentTime.getTime() - disTime.getTime();
if (diffDate < 0) return "";
var diffDate = difference / 3600 / 1000;
var day;
if (diffDate < 24)
day = "Today";
else if (diffDate >= 24 && diffDate <= 24 * 2)
day = "Yesterday";
else if (diffDate >= 24 * 2 && diffDate <= 24 * 7)
day = Math.round(diffDate / 24) + "days ago";
else
day = disTime.format('yyyy-mm-dd');
if ((diffDate < 2) && (day == "Today"))
time = "Just Now";
else
time = disTime.getHours()+':'+disTime.getMinutes();
lastTime.innerText = day + ' , ' + time;
}
10</script>
2
3
4<script type="text/javascript" >
5 function FormatLastSeen() {
var lastTime = document.getElementById('<%=_userViewForm.FindControl("_lastLoginDateLabel").ClientID %>');
var UTCValue = new Date(lastTime.innerText.replace(/-/g, "/"));
var localTime = UTCValue.getTime();
var currentTime = new Date();
var localOffset = currentTime.getTimezoneOffset() * 60000;
var bombay = localTime - localOffset;
var disTime = new Date(bombay);
var difference = currentTime.getTime() - disTime.getTime();
if (diffDate < 0) return "";
var diffDate = difference / 3600 / 1000;
var day;
if (diffDate < 24)
day = "Today";
else if (diffDate >= 24 && diffDate <= 24 * 2)
day = "Yesterday";
else if (diffDate >= 24 * 2 && diffDate <= 24 * 7)
day = Math.round(diffDate / 24) + "days ago";
else
day = disTime.format('yyyy-mm-dd');
if ((diffDate < 2) && (day == "Today"))
time = "Just Now";
else
time = disTime.getHours()+':'+disTime.getMinutes();
lastTime.innerText = day + ' , ' + time;
}
10</script>