Ngày tháng trong JavaScript

Các đối tượng ngày tháng giúp bạn làm việc với nội dung chỉ thờ gian (năm, tháng, ngày, giờ, phút, giây và mili giây).

Định dạng ngày tháng trong JavaScript

Ngày tháng trong JavaScript có thể được viết được dưới dạng chuỗi:

Wed Jul 06 2016 15:46:37 GMT+0700 (ICT)

hoặc dạng số:

1467794797985

Ngày tháng viết dưới dạng số, dạng này chính là chỉ một số tính theo mili giây từ 00:00:00 ngày 1 tháng 1 năm 1970.

Hiển thị ngày

Trong hướng dẫn này, chúng ta sử dụng đoạn mã để hiển thị ngày bên trong phần tử <p> có id=”demo”:

Ví dụ

<p id=”demo”></p>

<script>
document.getElementById(“demo”).innerHTML = Date();
</script>

Đoạn mã trên nói rằng: gán giá trị của hàm Date() vào nội dung (innerHTML) của phần tử có id=”demo”.

Khởi tạo đối tượng ngày tháng

Đối tượng ngày tháng giúp ta làm việc với ngày tháng.

Ngày tháng tiêu chuẩn bao gồm năm, tháng, ngày, giờ, phút, giây và mili giây.

Đối tượng ngày tháng được tạo ra với hàm new Date()

Có 4 cách để khởi tạo ngày tháng:

new Date()
new Date(milliseconds)
new Date(dateString)
new Date(năm, tháng, ngày, giờ, phút, giây, mili giây)

Sử dụng new Date() để tạo ra đối tượng ngày tháng với ngày tháng hiện tại:

Ví dụ

<script>
var d = new Date();
document.getElementById(“demo”).innerHTML = d;
</script>

Sử dụng new Date(“chuỗi ngày tháng”) để khởi tạo đối tượng ngày tháng mới từ ngày và thời gian chỉ định:

Ví dụ

<script>
var d = new Date(“November 12, 2015 10:16:00”);
document.getElementById(“demo”).innerHTML = d;
</script>

Sử dụng new Date(một con số cụ thể) để tạo đối tượng ngày tháng tính từ mốc 0.

Mốc 0 chính là thời điểm 00:00:00 ngày 01 tháng 01 năm 1970. Con số bên trong là chỉ định tính theo mili giây.

Ví dụ

<script>
var d = new Date(86400000);
document.getElementById(“demo”).innerHTML = d;
</script>

Một ngày có 86,400,000 mili giây.

Sử dụng new Date(7 số khác nhau) để tạo đối tượng ngày tháng với ngày tháng và thời gian được chỉ định:

7 con số được chỉ định bao gồm theo thứ tự là: năm, tháng, ngày, giờ, phút, giây và mili giây:

Ví dụ

<script>
var d = new Date(2015,6,21,10,13,20,1);
document.getElementById(“demo”).innerHTML = d;
</script>

Các biến thể của ví dụ trên, chúng ta có thể bỏ qua bất kỳ thông số nào trong 4 thông số cuối cùng:

Ví dụ

<script>
var d = new Date(2015,6,21);
document.getElementById(“demo”).innerHTML = d;
</script>

JavaScript đếm tháng bắt đầu từ 0 đến 11. Tháng 1 là 0, tháng 12 là 11.

Phương thức ngày tháng

Khi đối tượng ngày tháng được tạo, một số phương thức cho phép bạn tính toán với nó.

Phương thức ngày tháng cho phép bạn lấy và thiết lập năm, tháng, ngày, giờ, phút, giấy và mili giây của đối tượng, sử dụng cả thời gian địa phương hoặc UTC (universal hoặc GMT).

Hiển thị ngày tháng

Khi bạn hiển thị đối tượng ngày tháng trong HTML, nó tự động chuyển đổi sang chuỗi với phương thức toString()

Ví dụ

<p id=”demo”></p>

<script>
d = new Date();
document.getElementById(“demo”).innerHTML = d;
</script>

Cũng giống như:

<p id=”demo”></p>

<script>
d = new Date();
document.getElementById(“demo”).innerHTML = d.toString();
</script>

Phương thức toUTCString() chuyển đổi ngày tháng sang dạng chuỗi UTC (hiển thị ngày tháng tiêu chuẩn).

Ví dụ

<script>
var d = new Date();
document.getElementById(“demo”).innerHTML = d.toUTCString();
</script>

Phương thức toDateString() chuyển đổi ngày tháng sang định dạng thuận tiện cho việc đọc:

Ví dụ

<script>
var d = new Date();
document.getElementById(“demo”).innerHTML = d.toDateString();
</script>

Đối tượng ngày tháng là tĩnh không phải động. Thời gian máy tính được đánh dấu, nhưng các đối tượng ngày, khi được tạo ra thì không phải.

Thời gian theo vùng – múi giờ (Time Zones)

Khi bạn thiết lập ngày tháng mà bạn không chỉ định múi giờ, JavaScript sẽ sử dụng múi giờ của trình duyệt.

Khi bạn nhận lấy một ngày mà không chỉ định múi giờ, kết quả được chuyển đổi theo múi giờ của trình duyệt.

Nói cách khác: Nếu ngày/giờ được tạo theo GMT (Greenwich Mean Time), ngày/giờ sẽ được chuyển sang CDT (Central US Daylight Time – Giờ ban ngày khu vực trung tâm) nếu trình duyệt người dùng từ US (Mỹ).

Leave a Comment