Maison >interface Web >js tutoriel >Explication détaillée des compétences JavaScript Date object_javascript

Explication détaillée des compétences JavaScript Date object_javascript

WBOY
WBOYoriginal
2016-05-16 15:12:571188parcourir

Cet article présente principalement le fonctionnement des objets date et heure Date. Le contenu spécifique est le suivant

Table des matières
1. Introduction : expliquez l'objet Date.

2. Constructeur : introduisez plusieurs méthodes de constructeur new Date() de l'objet Date.

3. Méthodes d'instance : présentation des méthodes get, set et autres méthodes d'instance de l'objet Date.

4. Méthodes statiques : Présentation des méthodes statiques de l'objet Date : Date.now(), Date.parse(), etc.

5. Opérations pratiques : Présentation de quelques exemples d'objets Date : obtention du compte à rebours, comparaison de la taille de deux objets Date, etc.

1.Introduction
Description 1.1

L'objet Date est un objet pour la date et l'heure de fonctionnement. L'objet Date ne peut fonctionner que sur la date et l'heure via des méthodes.

1.2 Propriétés

Aucun ; les objets Date ne peuvent fonctionner que sur la date et l'heure via des méthodes.

2. Constructeur
2.1 new Date() : renvoie la date et l'heure locales actuelles

Paramètres : Aucun

Valeur de retour :

{Date} renvoie un objet Date représentant la date et l'heure locales.

Exemple :

var dt = new Date();
console.log(dt); // => 返回一个表示本地日期和时间的Date对象

2.2 new Date(milliseconds) : convertir les millisecondes en objet Date

Paramètres :

①milliseconds {int} : Nombre de millisecondes ; indiquant le nombre de millisecondes à partir de « 1970/01/01 00:00:00 » comme point de départ.

Remarque : le fuseau horaire actuel doit être ajouté au point de départ. Le fuseau horaire de l'heure de Pékin est le 8e arrondissement de l'Est. L'heure de départ réelle est : '1970/01/01 08:00:00'

Valeur de retour :

{Date} renvoie un objet Date superposé.

Exemple :

var dt = new Date(1000 * 60 * 1); // 前进1分钟的毫秒数
console.log(dt); // => {Date}:1970/01/01 08:01:00
dt = new Date(-1000 * 60 * 1); // 倒退1分钟的毫秒数
console.log(dt); // => {Date}:1970/01/01 07:59:00

2.3 new Date(dateStr) : Convertir une chaîne en objet Date

Paramètres :

①dateStr {string} : Une chaîne qui peut être convertie en objet Date (l'heure peut être omise) ;

1) aaaa/MM/jj HH:mm:ss (recommandé) : si l'heure est omise, l'heure de l'objet Date renvoyé est 00:00:00.

2) aaaa-MM-jj HH:mm:ss : si l'heure est omise, l'heure de l'objet Date renvoyé est 08:00:00 (plus le fuseau horaire local). Si l'heure n'est pas omise, cette chaîne ne pourra pas être convertie dans IE !

Valeur de retour :

{Date} renvoie un objet Date converti.

Exemple :


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区的时区)
dt = new Date('2014-12-25 12:00:00'); // yyyy-MM-dd HH:mm:ss (注意:此转换方式在IE中会报错!)
console.log(dt); // => {Date}:2014-12-25 12:00:00
2.4 nouvelle Date (année, mois, opt_day, opt_hours, opt_minutes, opt_seconds, opt_milliseconds) : convertir l'année, le mois, le jour, les heures, les minutes et les secondes en objets Date

Paramètres :

①année {int} : année ; 4 chiffres. Tels que : 1999, 2014

②month {int} : mois ; 2 chiffres. Le calcul commence à 0, 0 représente janvier et 11 représente décembre.

③opt_day {int} Facultatif : nombre ; 2 chiffres ; en comptant à partir de 1, 1 signifie n° 1.

④opt_hours {int} Facultatif : heures ; 2 chiffres ; valeur 0~23.

⑤opt_minutes {int} Facultatif : minutes ; 2 chiffres ; valeur 0~59.

⑥opt_seconds {int} Facultatif : secondes ; 2 non numérotées ; valeur 0~59.

⑦opt_milliseconds {int} Facultatif : millisecondes ; valeur 0~999.

Valeur de retour :

{Date} renvoie un objet Date converti.

Exemple :


var dt = new Date(2014, 11); // 2014年12月(这里输入的月份数字为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点30分40秒
console.log(dt); // => {Date}:2014/12/25 15:30:40
dt = new Date(2014, 12, 25); // 2014年13月25日(这里输入的月份数字为12,表示第13个月,跳转到第二年的1月)
console.log(dt); // => {Date}:2015/01/25

3. Méthodes d'instance
Les méthodes d'instance des objets Date sont principalement divisées en deux formes : l'heure locale et l'heure UTC. La même méthode fonctionne généralement sur ces deux formats d'heure (le nom de la méthode avec UTC est le fonctionnement de l'heure UTC). Nous introduisons ici principalement le fonctionnement de l'heure locale.

Méthode d'obtention 3.1

3.1.1 getFullYear() : renvoie la valeur de l'année de l'objet Date ;

3.1.2 getMonth() : renvoie la valeur mensuelle de l'objet Date. Commence à partir de 0, donc mois réel = valeur de retour + 1.

3.1.3 getDate() : renvoie la valeur de la date dans le mois de l'objet Date ; la plage de valeurs est de 1 à 31.

3.1.4 getHours() : renvoie la valeur horaire de l'objet Date.

3.1.5 getMinutes() : renvoie la valeur des minutes de l'objet Date.

3.1.6 getSeconds() : renvoie la valeur en secondes de l'objet Date.

3.1.7 getMilliseconds() : renvoie la valeur en millisecondes de l'objet Date.

3.1.8 getDay() : renvoie la valeur du jour de la semaine de l'objet Date ; 0 est dimanche, 1 est lundi, 2 est mardi, et ainsi de suite

3.1.9 getTime() : renvoie la valeur en millisecondes entre l'objet Date et '1970/01/01 00:00:00' (le fuseau horaire de Pékin est le 8e arrondissement Est, l'heure de début est en fait : ' 01/01/1970 08:00:00').

Exemple :


dt.getFullYear(); // => 2014:年
dt.getMonth(); // => 11:月;实际为12月份(月份从0开始计算)
dt.getDate(); // => 25:日
dt.getHours(); // => 15:时
dt.getMinutes(); // => 30:分
dt.getSeconds(); // => 40:秒
dt.getMilliseconds(); // => 333:毫秒
dt.getDay(); // => 4:星期几的值
dt.getTime(); // => 1419492640333 :返回Date对象与'1970/01/01 00:00:00'之间的毫秒值(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00')
Méthode de définition 3.2

3.2.1 setFullYear(year, opt_month, opt_date) : définit la valeur de l'année de l'objet Date ;

3.2.2 setMonth(month, opt_date) : définit la valeur mensuelle de l'objet Date. 0 représente janvier et 11 représente décembre.

3.2.3 setDate(date) : définit la valeur de la date dans le mois de l'objet Date ; la plage de valeurs est de 1 à 31.

3.2.4 setHours(hour, opt_min, opt_sec, opt_msec) : Définissez la valeur horaire de l'objet Date.

3.2.5 setMinutes(min, opt_sec, opt_msec) : Définissez la valeur des minutes de l'objet Date.

3.2.6 setSeconds(sec, opt_msec) : définit la valeur en secondes de l'objet Date.

3.2.7 setMilliseconds(msec) : définit la valeur en millisecondes de l'objet Date.

Exemple :


var dt = new Date();
dt.setFullYear(2014); // => 2014:年
dt.setMonth(11); // => 11:月;实际为12月份(月份从0开始计算)
dt.setDate(25); // => 25:日
dt.setHours(15); // => 15:时
dt.setMinutes(30); // => 30:分
dt.setSeconds(40); // => 40:秒
dt.setMilliseconds(333); // => 333:毫秒
console.log(dt); // => 2014年12月25日 15点30分40秒 333毫秒

3.3 其他方法

3.3.1 toString() :将Date转换为一个'年月日 时分秒'字符串

3.3.2 toLocaleString() :将Date转换为一个'年月日 时分秒'的本地格式字符串

3.3.3 toDateString() :将Date转换为一个'年月日'字符串

3.3.4 toLocaleDateString() :将Date转换为一个'年月日'的本地格式字符串

3.3.5 toTimeString() :将Date转换为一个'时分秒'字符串

3.3.6 toLocaleTimeString() :将Date转换为一个'时分秒'的本地格式字符串

3.3.7 valueOf() :与getTime()一样, 返回Date对象与'1970/01/01 00:00:00'之间的毫秒值(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00')

示例:

var dt = new Date();
console.log(dt.toString()); // => Tue Dec 23 2014 22:56:11 GMT+0800 (中国标准时间) :将Date转换为一个'年月日 时分秒'字符串
console.log(dt.toLocaleString()); // => 2014年12月23日 下午10:56:11 :将Date转换为一个'年月日 时分秒'的本地格式字符串
 
console.log(dt.toDateString()); // => Tue Dec 23 2014 :将Date转换为一个'年月日'字符串
console.log(dt.toLocaleDateString()); // => 2014年12月23日 :将Date转换为一个'年月日'的本地格式字符串
 
console.log(dt.toTimeString()); // => 22:56:11 GMT+0800 (中国标准时间) :将Date转换为一个'时分秒'字符串
console.log(dt.toLocaleTimeString()); // => 下午10:56:11 :将Date转换为一个'时分秒'的本地格式字符串
 
console.log(dt.valueOf()); // => 返回Date对象与'1970/01/01 00:00:00'之间的毫秒值(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00')

四. 静态方法
4.1 Date.now()

说明:返回当前日期和时间的Date对象与'1970/01/01 00:00:00'之间的毫秒值(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00')

参数:无

返回值:

{int} :当前时间与起始时间之间的毫秒数。

示例:

console.log(Date.now()); // => 1419431519276

4.2 Date.parse(dateStr)

说明:把字符串转换为Date对象 ,然后返回此Date对象与'1970/01/01 00:00:00'之间的毫秒值(北京时间的时区为东8区,起点时间实际为:'1970/01/01 08:00:00')

参数:

①dateStr {string} :可转换为Date对象的字符串(可省略时间);字符串的格式主要有两种:

1) yyyy/MM/dd HH:mm:ss (推荐):若省略时间,返回的Date对象的时间为 00:00:00。

2) yyyy-MM-dd HH:mm:ss :若省略时间,返回的Date对象的时间为 08:00:00(加上本地时区)。若不省略时间,此字符串在IE中返回NaN(非数字)!

返回值:

{int} 返回转换后的Date对象与起始时间之间的毫秒数。

示例:

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

五. 实际操作
5.1 C#的DateTime类型转换为Js的Date对象

说明:C#的DateTime类型通过Json序列化返回给前台的格式为:"\/Date(1419492640000)\/" 。中间的数字,表示DateTime的值与起始时间之间的毫秒数。

示例:

后台代码:简单的ashx

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);
}

前台代码:

var dateTimeJsonStr = '\/Date(1419492640000)\/'; // C# DateTime类型转换的Json格式
var msecStr = dateTimeJsonStr.toString().replace(/\/Date\(([-]?\d+)\)\//gi, "$1"); // => '1419492640000' :通过正则替换,获取毫秒字符串
var msesInt = Number.parseInt(msecStr); // 毫秒字符串转换成数值
var dt = new Date(msesInt); // 初始化Date对象
console.log(dt.toLocaleString()); // => 2014年12月25日 下午3:30:40

5.2  获取倒计时

说明:计算当前时间离目的时间相差多少天时分。

示例:

/**
* 返回倒计时
* @param dt {Date}:目的Date对象
* @return {Strin} :返回倒计时:X天X时X分
*/
function getDownTime(dt) {
 // 1.获取倒计时
 var intervalMsec = dt - Date.now(); // 目的时间减去现在的时间,获取两者相差的毫秒数
 var intervalSec = intervalMsec / 1000; // 转换成秒数
 var day = parseInt(intervalSec / 3600 / 24); // 天数
 var hour = parseInt((intervalSec - day * 24 * 3600) / 3600); // 小时
 var min = parseInt((intervalSec - day * 24 * 3600 - hour * 3600) / 60); // 分钟
 
 // 2.若相差的毫秒小于0 ,表示目的时间小于当前时间,这时的取的值都是负的:-X天-时-分,显示时,只显示天数前面为负的就行。
 if (intervalMsec < 0) {
  hour = 0 - hour;
  min = 0 - min;
 }
 
 // 3.拼接字符串并返回
 var rs = day + '天' + hour + '时' + min + '分';
 return rs;
}
 
// 当前时间:2014/12/28 13:26
console.log(getDownTime(new Date('2015/06/01'))); // => 154天10时33分
console.log(getDownTime(new Date('2014/01/01'))); // => -361天13时26分
 

5.3 比较2个Date对象的大小

说明:可以对比2者的与起始时间的毫秒数,来区分大小。

示例:

var dt1 = new Date('2015/12/01');
var dt2 = new Date('2015/12/25');
console.log(dt1 > dt2); // => false

以上就是本文的全部内容,希望对大家的学习有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn