Objet date
Objet date Date
En JavaScript, l'objet Date est utilisé pour représenter la date et l'heure.
Pour obtenir l'heure actuelle du système, utilisez :
var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2015, 年份 now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月 now.getDate(); // 24, 表示24号 now.getDay(); // 3, 表示星期三 now.getHours(); // 19, 24小时制 now.getMinutes(); // 49, 分钟 now.getSeconds(); // 22, 秒 now.getMilliseconds(); // 875, 毫秒数 now.getTime(); // 1435146562875, 以number形式表示的时间戳
Notez que l'heure actuelle est l'heure que le navigateur obtient du système d'exploitation natif, elle peut donc ne pas être exacte car l'utilisateur peut définir l’heure actuelle pour n’importe quelle valeur.
Si vous souhaitez créer un objet Date qui spécifie une date et une heure, vous pouvez utiliser :
var d = new Date(2015, 5, 19, 20, 15, 30, 123); d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
Vous avez peut-être observé une chose très, très délicate, à savoir la plage de mois dans JavaScript est représenté sous forme d'entier comme 0~ 11, 0 représente janvier, 1 représente février..., donc pour représenter juin, on passe en 5 ! C'est certainement quelque chose que les concepteurs de JavaScript ont eu une idée originale à l'époque, mais il est impossible de le résoudre maintenant.
La deuxième façon de créer une date et une heure spécifiées consiste à analyser une chaîne conforme au format ISO 8601 :
var d = Date.parse('2015-06-24T19:49:22.875+08:00'); d; // 1435146562875
Mais elle ne renvoie pas un objet Date, mais un horodatage. Cependant, vous pouvez facilement le convertir en Date avec un horodatage :
var d = new Date(1435146562875); d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
<html> <body> <script type="text/javascript"> var d=new Date(); document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒"); </script> </body> </html>
Fuseau horaire
L'heure représentée par l'objet Date est toujours affichée en fonction du fuseau horaire du navigateur. , mais nous pouvons afficher à la fois l'heure locale et l'heure UTC ajustée :
var d = new Date(1435146562875); d.toLocaleString(); // '2015/6/24 下午7:49:22',本地时间(北京时区+8:00),显示的字符串与操作系统设定的格式有关 d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC时间,与本地时间相差8小时
Alors, comment effectuer une conversion de fuseau horaire en JavaScript ? En fait, tant que nous transmettons un horodatage de type numéro, nous n'avons pas besoin de nous soucier de la conversion du fuseau horaire. N'importe quel navigateur peut convertir correctement un horodatage en heure locale.
Qu'est-ce qu'un horodatage ? L'horodatage est un entier auto-croissant qui représente le nombre de millisecondes depuis le 1er janvier 1970, fuseau horaire 0h00 GMT, jusqu'à aujourd'hui. En supposant que l'heure de l'ordinateur sur lequel se trouve le navigateur est exacte, les numéros d'horodatage générés par les ordinateurs dans n'importe quel fuseau horaire du monde seront les mêmes à ce moment-là. Par conséquent, l'horodatage peut représenter avec précision un moment et n'a rien à voir. avec le fuseau horaire.
Il nous suffit donc de transmettre l'horodatage ou de lire l'horodatage de la base de données et de laisser JavaScript le convertir automatiquement en heure locale.
Pour obtenir l'horodatage actuel, vous pouvez utiliser :
if (Date.now) { alert(Date.now()); // 老版本IE没有now()方法 } else { alert(new Date().getTime()); }
<html> <body> <script type="text/javascript"> var d=new Date() var weekday=new Array(7) weekday[0]="星期日" weekday[1]="星期一" weekday[2]="星期二" weekday[3]="星期三" weekday[4]="星期四" weekday[5]="星期五" weekday[6]="星期六" document.write("今天是" + weekday[d.getDay()]) </script> </body> </html>