Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der JavaScript-Date-Object_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:12:57
Original
1152 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Funktionsweise von Datums- und Uhrzeitobjekten vorgestellt. Der spezifische Inhalt ist wie folgt

Inhaltsverzeichnis
1. Einführung: Erklären Sie das Date-Objekt.

2. Konstruktor: Führen Sie mehrere Methoden des Konstruktors new Date() des Date-Objekts ein.

3. Instanzmethoden: Einführung in die Get-, Set- und andere Instanzmethoden des Date-Objekts.

4. Statische Methoden: Einführung in die statischen Methoden des Date-Objekts: Date.now(), Date.parse() usw.

5. Praktische Operationen: Einführung in einige Beispiele von Datumsobjekten: Countdown abrufen, Größe zweier Datumsobjekte vergleichen usw.

1. Einleitung
1.1 Beschreibung

Datumsobjekt ist ein Objekt für Betriebsdatum und -uhrzeit. Das Date-Objekt kann Datum und Uhrzeit nur über Methoden bearbeiten.

1.2 Eigenschaften

Keine; Datumsobjekte können nur über Methoden mit Datum und Uhrzeit arbeiten.

2. Konstruktor
2.1 new Date(): Gibt das aktuelle lokale Datum und die aktuelle Uhrzeit zurück

Parameter: Keine

Rückgabewert:

{Date} gibt ein Date-Objekt zurück, das das lokale Datum und die lokale Uhrzeit darstellt.

Beispiel:

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

2.2 neues Datum (Millisekunden): Konvertieren Sie Millisekunden in ein Datumsobjekt

Parameter:

①Millisekunden {int}: Die Anzahl der Millisekunden, die die Anzahl der Millisekunden ab „1970/01/00:00:00“ als Startpunkt angibt.

Hinweis: Die aktuelle Zeitzone muss zum Startpunkt hinzugefügt werden. Die Zeitzone der Pekinger Zeit ist: „1970/01/08:00:00“.

Rückgabewert:

{Date} gibt ein überlagertes Date-Objekt zurück.

Beispiel:


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
Nach dem Login kopieren
2.3 neues Date(dateStr): String in Date-Objekt konvertieren

Parameter:

①dateStr {string}: Ein String, der in ein Date-Objekt konvertiert werden kann (die Zeit kann weggelassen werden); es gibt zwei Hauptformate von Strings:

1) jjjj/MM/tt HH:mm:ss (empfohlen): Wenn die Zeit weggelassen wird, ist die Zeit des zurückgegebenen Date-Objekts 00:00:00.

2) jjjj-MM-tt HH:mm:ss: Wenn die Zeit weggelassen wird, ist die Zeit des zurückgegebenen Date-Objekts 08:00:00 (plus die lokale Zeitzone). Wenn die Zeit nicht weggelassen wird, kann diese Zeichenfolge im IE nicht konvertiert werden!

Rückgabewert:

{Date} gibt ein konvertiertes Date-Objekt zurück.

Beispiel:


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
Nach dem Login kopieren
2.4 neues Datum (Jahr, Monat, opt_day, opt_hours, opt_minutes, opt_seconds, opt_milliseconds): Jahr, Monat, Tag, Stunden, Minuten und Sekunden in Datumsobjekte konvertieren

Parameter:

①year {int}: Jahr; Wie zum Beispiel: 1999, 2014

②month {int}: Monat; Die Berechnung beginnt bei 0, 0 steht für Januar und 11 für Dezember.

③opt_day {int} Optional: Zahl; 2 Ziffern, beginnend mit 1, 1 bedeutet Nr. 1.

④opt_hours {int} Optional: 2 Ziffern; Wert 0~23.

⑤opt_minutes {int} Optional: 2 Ziffern; Wert 0~59.

⑥opt_seconds {int} Optional: 2 unnummerierte Werte;

⑦opt_milliseconds {int} Optional: Millisekundenwert 0~999.

Rückgabewert:

{Date} gibt ein konvertiertes Date-Objekt zurück.

Beispiel:


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
Nach dem Login kopieren

3. Instanzmethoden
Die Instanzmethoden von Date-Objekten sind hauptsächlich in zwei Formen unterteilt: Ortszeit und UTC-Zeit. Die gleiche Methode funktioniert im Allgemeinen mit diesen beiden Zeitformaten (der Methodenname mit UTC ist die Operation der UTC-Zeit). Hier stellen wir hauptsächlich die Operation der Ortszeit vor.

3.1 Get-Methode

3.1.1 getFullYear(): Gibt den Jahreswert des Date-Objekts mit 4 Ziffern zurück.

3.1.2 getMonth(): Gibt den Monatswert des Date-Objekts zurück. Beginnt bei 0, also echter Monat = Rückgabewert + 1.

3.1.3 getDate(): Gibt den Datumswert im Monat des Date-Objekts zurück; der Wertebereich liegt zwischen 1 und 31.

3.1.4 getHours(): Gibt den Stundenwert des Date-Objekts zurück.

3.1.5 getMinutes(): Gibt den Minutenwert des Date-Objekts zurück.

3.1.6 getSeconds(): Gibt den Sekundenwert des Date-Objekts zurück.

3.1.7 getMilliseconds(): Gibt den Millisekundenwert des Date-Objekts zurück.

3.1.8 getDay(): Gibt den Wochentagswert des Date-Objekts zurück; 0 ist Sonntag, 1 ist Montag, 2 ist Dienstag und so weiter

3.1.9 getTime(): Gibt den Millisekundenwert zwischen dem Date-Objekt und „1970/01/01 00:00:00“ zurück (die Zeitzone der Pekinger Zeit ist East 8th District, die Startzeit ist tatsächlich: „ 01.01.1970 08:00:00‘).

Beispiel:


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')
Nach dem Login kopieren
3.2 Set-Methode

3.2.1 setFullYear(year, opt_month, opt_date): Legt den Jahreswert des Date-Objekts fest; 4-stellig.

3.2.2 setMonth(month, opt_date): Legt den Monatswert des Date-Objekts fest. 0 steht für Januar und 11 für Dezember.

3.2.3 setDate(date): Legen Sie den Datumswert im Monat des Date-Objekts fest; der Wertebereich liegt zwischen 1 und 31.

3.2.4 setHours(hour, opt_min, opt_sec, opt_msec): Legt den Stundenwert des Date-Objekts fest.

3.2.5 setMinutes(min, opt_sec, opt_msec): Legen Sie den Minutenwert des Date-Objekts fest.

3.2.6 setSeconds(sec, opt_msec): Legt den Sekundenwert des Date-Objekts fest.

3.2.7 setMilliseconds(msec): Legt den Millisekundenwert des Date-Objekts fest.

Beispiel:


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毫秒
Nach dem Login kopieren

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')
Nach dem Login kopieren

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

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

参数:无

返回值:

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

示例:

console.log(Date.now()); // => 1419431519276
Nach dem Login kopieren

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!)
Nach dem Login kopieren

五. 实际操作
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);
}
Nach dem Login kopieren

前台代码:

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
Nach dem Login kopieren

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分
 
Nach dem Login kopieren

5.3 比较2个Date对象的大小

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

示例:

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!