在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 淺談 JavaScript Date 日期和時(shí)間對(duì)象
淺談 JavaScript 之事件綁定
淺談 javascript 中字符串 String 與數(shù)組 Array
淺談 javascript 中基本包裝類型
淺談 JavaScript Math 和 Number 對(duì)象
淺談 Javascript 的靜態(tài)屬性和原型屬性
淺談 JavaScript 中定義變量時(shí)有無(wú) var 聲明的區(qū)別
淺談 JavaScript Array 對(duì)象
淺談 JavaScript 函數(shù)參數(shù)的可修改性問(wèn)題
淺談 javascript 中的 instanceof 和 typeof
淺談 JavaScript 中 Date (日期對(duì)象),Math 對(duì)象
淺談 Javascript 執(zhí)行順序
淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 中面向?qū)ο蠹夹g(shù)的模擬
淺談 javascript 的原型繼承
淺談 javascript 事件取消和阻止冒泡
根據(jù)一段代碼淺談 Javascript 閉包
淺談 Javascript 面向?qū)ο缶幊?/span>
淺談 javascript 六種數(shù)據(jù)類型以及特殊注意點(diǎn)
淺談 Javascript 變量作用域問(wèn)題
淺談 javascript 函數(shù)內(nèi)部屬性
淺談 javascript 中自定義模版
淺談 JavaScript 字符集
淺談 javascript 面向?qū)ο缶幊?/span>
淺談 JavaScript 框架分類
淺談 JavaScript 中的 Math.atan() 方法的使用
淺談 Javascript 數(shù)組與字典
淺談 JavaScript 數(shù)據(jù)類型及轉(zhuǎn)換
淺談 javascript 的調(diào)試
淺談 Javascript 嵌套函數(shù)及閉包
淺談 javascript 回調(diào)函數(shù)
淺談 JavaScript Date 日期和時(shí)間對(duì)象
淺談 Javascript 中的 Function 與 Object
淺談 JavaScript 數(shù)據(jù)類型
淺談 javascript 中 this 在事件中的應(yīng)用
淺談 javascript 中的閉包
淺談 javascript 函數(shù)劫持
淺談 Javascript 中深復(fù)制
淺談 JavaScript 函數(shù)節(jié)流
淺談 JavaScript 中的 String 對(duì)象常用方法
淺談 JavaScript 事件的屬性列表
淺談 JavaScript 函數(shù)與棧
淺談 JavaScript 的事件
淺談 javascript 中的作用域
淺談 JavaScript 的執(zhí)行效率
淺談 Javascript 事件模擬
淺談 JavaScript function 函數(shù)種類
淺談 javascript 歸并方法
淺談 javascript 迭代方法
淺談 JavaScript 編程語(yǔ)言的編碼規(guī)范
淺談 JavaScript 實(shí)現(xiàn)面向?qū)ο笾械念?/span>
淺談 Javascript 鼠標(biāo)和滾輪事件
淺談 Javascript Base64 加密解密
淺談 Javascript 中勻速運(yùn)動(dòng)的停止條件
淺談 javascript 實(shí)現(xiàn)八大排序
淺談 javascript 的分號(hào)的使用
淺談 javascript 中 createElement 事件
淺談 javascript 的數(shù)據(jù)類型檢測(cè)
淺談 javascript 對(duì)象模型和 function 對(duì)象
淺談 Javascript 如何實(shí)現(xiàn)勻速運(yùn)動(dòng)
淺談 JavaScript 字符串與數(shù)組
淺談 javascript 面向?qū)ο蟪绦蛟O(shè)計(jì)
淺談 Javascript 事件處理程序的幾種方式

淺談 JavaScript Date 日期和時(shí)間對(duì)象

Date 日期和時(shí)間對(duì)象

介紹

  Date 對(duì)象,是操作日期和時(shí)間的對(duì)象。Date 對(duì)象對(duì)日期和時(shí)間的操作只能通過(guò)方法。

構(gòu)造函數(shù)

new Date() :返回當(dāng)前的本地日期和時(shí)間

參數(shù):無(wú)

返回值:

{Date} 返回一個(gè)表示本地日期和時(shí)間的 Date 對(duì)象。

示例:

[js] view plaincopy
var dt = new Date();  

console.log(dt); // => 返回一個(gè)表示本地日期和時(shí)間的 Date 對(duì)象

new Date(milliseconds) :把毫秒數(shù)轉(zhuǎn)換為 Date 對(duì)象

參數(shù):

①milliseconds {int} :毫秒數(shù);表示從 '1970/01/01 00:00:00' 為起點(diǎn),開始疊加的毫秒數(shù)。

注意:起點(diǎn)的時(shí)分秒還要加上當(dāng)前所在的時(shí)區(qū),北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00'

返回值:

{Date} 返回一個(gè)疊加后的 Date 對(duì)象。

示例:

[js] view plaincopy
var dt = new Date(1000 * 60 * 1); // 前進(jìn)1分鐘的毫秒數(shù)  

console.log(dt); // => {Date}:1970/01/01 08:01:00  

dt = new Date(-1000 * 60 * 1); // 倒退1分鐘的毫秒數(shù)  

console.log(dt); // => {Date}:1970/01/01 07:59:00  

new Date(dateStr) :把字符串轉(zhuǎn)換為 Date 對(duì)象

參數(shù):

①dateStr {string} :可轉(zhuǎn)換為 Date 對(duì)象的字符串(可省略時(shí)間);字符串的格式主要有兩種:

1) yyyy/MM/dd HH:mm:ss (推薦):若省略時(shí)間,返回的 Date 對(duì)象的時(shí)間為 00:00:00。

2) yyyy-MM-dd HH:mm:ss :若省略時(shí)間,返回的 Date 對(duì)象的時(shí)間為 08:00:00(加上本地時(shí)區(qū))。若不省略時(shí)間,此字符串在IE中會(huì)轉(zhuǎn)換失敗!

返回值:

{Date} 返回一個(gè)轉(zhuǎn)換后的 Date 對(duì)象。

示例:

[js] view plaincopy
var dt = new Date('2014/12/25'); // yyyy/MM/dd  

console.log(dt); // => {Date}:2014/12/25 00:00:00  

dt = new Date('2014/12/25 12:00:00'); // yyyy/MM/dd HH:mm:ss  

console.log(dt); // => {Date}:2014/12/25 12:00:00  

dt = new Date('2014-12-25'); // yyyy-MM-dd  

console.log(dt); // => {Date}:2014-12-25 08:00:00 (加上了東8區(qū)的時(shí)區(qū))  

dt = new Date('2014-12-25 12:00:00'); // yyyy-MM-dd HH:mm:ss (注意:此轉(zhuǎn)換方式在IE中會(huì)報(bào)錯(cuò)!)  

console.log(dt); // => {Date}:2014-12-25 12:00:00  

new Date(year, month, opt_day, opt_hours, opt_minutes, opt_seconds, opt_milliseconds) :把年月日、時(shí)分秒轉(zhuǎn)換為 Date 對(duì)象

參數(shù)

①year {int} :年份;4位數(shù)字。如:1999、2014

②month {int} :月份;2位數(shù)字。從0開始計(jì)算,0表示1月份、11表示12月份。

③opt_day {int} 可選:號(hào); 2位數(shù)字;從1開始計(jì)算,1表示1號(hào)。

④opt_hours {int} 可選:時(shí);2位數(shù)字;取值0~23。

⑤opt_minutes {int} 可選:分;2位數(shù)字;取值0~59。

⑥opt_seconds {int} 可選:秒;2未數(shù)字;取值0~59。

⑦opt_milliseconds {int} 可選:毫秒;取值0~999。

返回值:

{Date} 返回一個(gè)轉(zhuǎn)換后的Date對(duì)象。

示例:

[js] view plaincopy
var dt = new Date(2014, 11); // 2014年12月(這里輸入的月份數(shù)字為11)  

console.log(dt); // => {Date}:2014/12/01 00:00:00  

dt = new Date(2014, 11, 25); // 2014年12月25日  

console.log(dt); // => {Date}:2014/12/25 00:00:00  

dt = new Date(2014, 11, 25, 15, 30, 40); // 2014年12月25日 15點(diǎn)30分40秒  

console.log(dt); // => {Date}:2014/12/25 15:30:40  

dt = new Date(2014, 12, 25); // 2014年13月25日(這里輸入的月份數(shù)字為12,表示第13個(gè)月,跳轉(zhuǎn)到第二年的1月)  

console.log(dt); // => {Date}:2015/01/25  

屬性

無(wú);Date 對(duì)象對(duì)日期和時(shí)間的操作只能通過(guò)方法。

實(shí)例方法

Date 對(duì)象的實(shí)例方法主要分為2種形式:本地時(shí)間和 UTC 時(shí)間。同一個(gè)方法,一般都會(huì)有此2種時(shí)間格式操作(方法名帶 UTC 的,就是操作 UTC 時(shí)間),這里主要介紹對(duì)本地時(shí)間的操作。

get方法

  • getFullYear() :返回 Date 對(duì)象的年份值;4位年份。

  • getMonth() :返回 Date 對(duì)象的月份值。從0開始,所以真實(shí)月份=返回值+1 。

  • getDate() :返回 Date 對(duì)象的月份中的日期值;值的范圍1~31 。

  • getHours() :返回 Date 對(duì)象的小時(shí)值。

  • getMinutes() :返回 Date 對(duì)象的分鐘值。

  • getSeconds() :返回 Date 對(duì)象的秒數(shù)值。

  • getMilliseconds() :返回 Date 對(duì)象的毫秒值。

  • getDay() :返回 Date 對(duì)象的一周中的星期值;0為星期天,1為星期一、2為星期二,依此類推

  • getTime() :返回 Date 對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00') 。

示例:

[js] view plaincopy
dt.getFullYear(); // => 2014:年  

dt.getMonth(); // => 11:月;實(shí)際為12月份(月份從0開始計(jì)算)  

dt.getDate(); // => 25:日  

dt.getHours(); // => 15:時(shí)  

dt.getMinutes(); // => 30:分  

dt.getSeconds(); // => 40:秒  

dt.getMilliseconds(); // => 333:毫秒  

dt.getDay(); // => 4:星期幾的值  

dt.getTime(); // => 1419492640333 :返回Date對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00')  

set 方法

  • setFullYear(year, opt_month, opt_date) :設(shè)置 Date 對(duì)象的年份值;4位年份。

  • setMonth(month, opt_date) :設(shè)置 Date 對(duì)象的月份值。0表示1月,11表示12月。

  • setDate(date) :設(shè)置 Date 對(duì)象的月份中的日期值;值的范圍1~31 。

-setHours(hour, opt_min, opt_sec, opt_msec) :設(shè)置 Date 對(duì)象的小時(shí)值。

  • setMinutes(min, opt_sec, opt_msec) :設(shè)置 Date 對(duì)象的分鐘值。

  • setSeconds(sec, opt_msec) :設(shè)置 Date 對(duì)象的秒數(shù)值。

  • setMilliseconds(msec) :設(shè)置 Date 對(duì)象的毫秒值。

示例:

[js] view plaincopy
var dt = new Date();  

dt.setFullYear(2014); // => 2014:年  

dt.setMonth(11); // => 11:月;實(shí)際為12月份(月份從0開始計(jì)算)  

dt.setDate(25); // => 25:日  

dt.setHours(15); // => 15:時(shí)  

dt.setMinutes(30); // => 30:分  

dt.setSeconds(40); // => 40:秒  

dt.setMilliseconds(333); // => 333:毫秒  

console.log(dt); // =>  2014年12月25日 15點(diǎn)30分40秒 333毫秒  

其他方法

  • toString() :將 Date 轉(zhuǎn)換為一個(gè)'年月日 時(shí)分秒'字符串

  • toLocaleString() :將 Date 轉(zhuǎn)換為一個(gè)'年月日 時(shí)分秒'的本地格式字符串

  • toDateString() :將 Date 轉(zhuǎn)換為一個(gè)'年月日'字符串

  • toLocaleDateString() :將 Date 轉(zhuǎn)換為一個(gè)'年月日'的本地格式字符串

  • toTimeString() :將 Date 轉(zhuǎn)換為一個(gè)'時(shí)分秒'字符串

  • toLocaleTimeString() :將 Date 轉(zhuǎn)換為一個(gè)'時(shí)分秒'的本地格式字符串

  • valueOf() :與getTime()一樣, 返回 Date 對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00')

示例:

[js] view plaincopy
var dt = new Date();  

console.log(dt.toString()); // => Tue Dec 23 2014 22:56:11 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) :將Date轉(zhuǎn)換為一個(gè)'年月日 時(shí)分秒'字符串  

console.log(dt.toLocaleString()); // => 2014年12月23日 下午10:56:11  :將Date轉(zhuǎn)換為一個(gè)'年月日 時(shí)分秒'的本地格式字符串  

console.log(dt.toDateString()); // => Tue Dec 23 2014 :將Date轉(zhuǎn)換為一個(gè)'年月日'字符串  

console.log(dt.toLocaleDateString()); // => 2014年12月23日 :將Date轉(zhuǎn)換為一個(gè)'年月日'的本地格式字符串  

console.log(dt.toTimeString()); // => 22:56:11 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) :將Date轉(zhuǎn)換為一個(gè)'時(shí)分秒'字符串  

console.log(dt.toLocaleTimeString()); // => 下午10:56:11 :將Date轉(zhuǎn)換為一個(gè)'時(shí)分秒'的本地格式字符串  

console.log(dt.valueOf()); // => 返回Date對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00')  

靜態(tài)方法

Date.now()

說(shuō)明:返回當(dāng)前日期和時(shí)間的 Date 對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00') 參數(shù):無(wú)

返回值:

{int} :當(dāng)前時(shí)間與起始時(shí)間之間的毫秒數(shù)。

示例:

[js] view plaincopy
console.log(Date.now()); // => 1419431519276  

Date.parse(dateStr)

說(shuō)明:把字符串轉(zhuǎn)換為 Date 對(duì)象 ,然后返回此 Date 對(duì)象與'1970/01/01 00:00:00'之間的毫秒值(北京時(shí)間的時(shí)區(qū)為東8區(qū),起點(diǎn)時(shí)間實(shí)際為:'1970/01/01 08:00:00') 參數(shù):

①dateStr {string} :可轉(zhuǎn)換為 Date 對(duì)象的字符串(可省略時(shí)間);字符串的格式主要有兩種:

1) yyyy/MM/dd HH:mm:ss (推薦):若省略時(shí)間,返回的 Date 對(duì)象的時(shí)間為 00:00:00。

2) yyyy-MM-dd HH:mm:ss :若省略時(shí)間,返回的 Date 對(duì)象的時(shí)間為 08:00:00(加上本地時(shí)區(qū))。若不省略時(shí)間,此字符串在IE中返回NaN(非數(shù)字)!

返回值:

{int} 返回轉(zhuǎn)換后的Date對(duì)象與起始時(shí)間之間的毫秒數(shù)。

示例:

[js] view plaincopy
console.log(Date.parse('2014/12/25 12:00:00')); // => 1419480000000  

console.log(Date.parse('2014-12-25 12:00:00')); // => 1419480000000  (注意:此轉(zhuǎn)換方式在IE中返回NaN!)  

實(shí)際操作

C# 的 DateTime 類型轉(zhuǎn)換為 Js 的 Date 對(duì)象

說(shuō)明:C# 的 DateTime 類型通過(guò) Json 序列化返回給前臺(tái)的格式為:"\/Date(1419492640000)\/" 。中間的數(shù)字,表示 DateTime 的值與起始時(shí)間之間的毫秒數(shù)。 示例:

后臺(tái)代碼:簡(jiǎn)單的ashx

[js] view plaincopy
public void ProcessRequest (HttpContext context) {  

    System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();  

    DateTime dt = DateTime.Parse("2014-12-25 15:30:40");  

    string rs = js.Serialize(dt); // 序列化成Json  

    context.Response.ContentType = "text/plain";  

    context.Response.Write(rs);  

}  

前臺(tái)代碼:

[js] view plaincopy
var dateTimeJsonStr = '\/Date(1419492640000)\/'; // C# DateTime類型轉(zhuǎn)換的Json格式  

var msecStr = dateTimeJsonStr.toString().replace(/\/Date\(([-]?\d+)\)\//gi, "$1"); // => '1419492640000' :通過(guò)正則替換,獲取毫秒字符串  

var msesInt = Number.parseInt(msecStr); // 毫秒字符串轉(zhuǎn)換成數(shù)值  

var dt = new Date(msesInt); // 初始化Date對(duì)象  

console.log(dt.toLocaleString()); // => 2014年12月25日 下午3:30:40  

獲取倒計(jì)時(shí)

說(shuō)明:計(jì)算當(dāng)前時(shí)間離目的時(shí)間相差多少天時(shí)分。 示例:

[js] view plaincopy
/** 

* 返回倒計(jì)時(shí) 

* @param dt {Date}:目的Date對(duì)象 

* @return {Strin} :返回倒計(jì)時(shí):X天X時(shí)X分 

*/  

function getDownTime(dt) {  

    // 1.獲取倒計(jì)時(shí)  

    var intervalMsec = dt - Date.now(); // 目的時(shí)間減去現(xiàn)在的時(shí)間,獲取兩者相差的毫秒數(shù)  

    var intervalSec = intervalMsec / 1000; // 轉(zhuǎn)換成秒數(shù)  

    var day = parseInt(intervalSec / 3600 / 24); // 天數(shù)  

    var hour = parseInt((intervalSec - day * 24 * 3600) / 3600); // 小時(shí)  

    var min = parseInt((intervalSec - day * 24 * 3600 - hour * 3600) / 60); // 分鐘  

    // 2.若相差的毫秒小于0 ,表示目的時(shí)間小于當(dāng)前時(shí)間,這時(shí)的取的值都是負(fù)的:-X天-時(shí)-分,顯示時(shí),只顯示天數(shù)前面為負(fù)的就行。  

    if (intervalMsec < 0) {  

        hour = 0 - hour;  

        min = 0 - min;  

    }  

    // 3.拼接字符串并返回  

    var rs = day + '天' + hour + '時(shí)' + min + '分';  

    return rs;  

}  

// 當(dāng)前時(shí)間:2014/12/28 13:26  

console.log(getDownTime(new Date('2015/06/01'))); // => 154天10時(shí)33分  

console.log(getDownTime(new Date('2014/01/01'))); // => -361天13時(shí)26分  

比較2個(gè) Date 對(duì)象的大小

說(shuō)明:可以對(duì)比2者的與起始時(shí)間的毫秒數(shù),來(lái)區(qū)分大小。 示例:

[js] view plaincopy
var dt1 = new Date('2015/12/01');  

var dt2 = new Date('2015/12/25');  

console.log(dt1 > dt2); // => false