By GokiSoft.Com| 16:27 19/05/2020|
Tài Liệu Javascript

JavaScript Date Formats - Các định dạng thời gian trong JavaScript

Nhập vào thời gian JavaScript(JavaScript Date Input)


Đại khái có 3 kiểu định dạng nhập vào thời gian JavaScript:

KiểuVí dụ
ISO Date"2015-03-25" (Tiêu chuẩn quốc tế)
Short Date"03/25/2015"
Long Date"Mar 25 2015" or "25 Mar 2015"

Tip: Định dang ISO theo một chuẩn chặt chẽ trong JavaScript.

Các định dạng khác không tốt cho việc xác định trong và có thể phải được trình duyệt chuyên xử lý. 



Xuất thời gian JavaScript(JavaScript Date Output)


Không phụ thuộc vào đầu vào, JavaScript sẽ (mặc định) xuất ra thời gian trong một định dạng chuỗi văn bản đầy đủ:

Wed Mar 25 2015 07:00:00 GMT+0700 (Indochina Time)



Các kiểu thời gian ISO JavaScript


ISO 8601 là một tiêu chuẩn quốc tế cho sự đại diện của thời gian.

ISO 8601 cú pháp (YYYY-MM-DD) cũng được yêu thích trong định dạng thời gian JavaScript


ví dụ 

var d = new Date("2015-03-25");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
var d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Tip: Sự tính toán thời gian sẽ liên quan đến vùng thời gian của bạn.

Phụ thuộc vào vùng thời gian của bạn, kết quả bên trên sẽ khác nhau giữa 24 tháng 3 và 25 tháng 3.



Thời gian ISO (Năm và tháng)


Thời gian ISO có thể được viết khi không xác định ngày cụ thể (YYYY-MM):

ví dụ

var d = new Date("2015-03");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
var d = new Date("2015-03"); 
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Tip: Vùng thời gian sẽ làm thay đổi kết quả trên, giữa 28 tháng 2 và 1 tháng 3.



Thời gian ISO (Chỉ riêng năm)


Thời gian ISO có thể được viết không có tháng hoặc ngày (YYYY):

ví dụ

var d = new Date("2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

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

</body>
</html>


Tip: Vùng thời gian sẽ làm thay đổi kết quả trên, giữa 31 tháng 12 2014 và 01 tháng 1 2015.



Thời gian ISO(ngày-giờ)


Các thời gian ISO có thể viết thêm với giờ, phút, và giây (YYYY-MM-DDTHH:MM:SSZ):

ví dụ

var d = new Date("2015-03-25T12:00:00Z");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p>Separate date and time with a capital T.</p>

<p>Indicate UTC time with a capital Z.</p>

<p id="demo"></p>

<script>
var d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Ngày và giờ được chia cắt bởi một chữ T hoa.

Thời gian UTC xác định với một chữ Z hoa.

Nếu bạn muốn thay đổi quan hệ thời gian thành UTC, bỏ chữ Z và thêm +HH:MM hay -HH:MM thay thế:

ví dụ

var d = new Date("2015-03-25T12:00:00-06:30");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>

</body>
</html>


Tip: UTC(Universal Time Coordinated) giống với GMT (Greenwich Mean Time).

Bỏ T hoặc Z trong chuỗi ngày-giờ có thể dẫn đến các kết quả khác nhau trong các trình duyệt khác nhau.



Các vùng thời gian


Khi cài đặt một thời gian, khi không xác định vùng thời gian, JavaScript sẽ dùng vùng thời gian của trình duyệt.

Khi lấy một thời gian, khi không xác định vùng thời gian, kết quả sẽ bị chuyển thành vùng thời gian của trình duyệt.

Nói cách khác: nếu một ngày/giờ được tạo ra dang GMT, ngày/giờ sẽ bị chuyển đổi sang CDT(Central US Daylight Time) nếu trình duyệt người dùng đến từ trung tâm US.



Thời gian kiểu Short JavaScript(JavaScript Short Dates)


Kiểu thời gian short được viết với một cú pháp "MM/DD/YYYY" như này:

ví dụ

var d = new Date("03/25/2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>



Các cảnh báo !


Trong một số trình duyệt, các tháng hoặc ngày với số không bắt đầu có thể dẫn đến một lỗi:

var d = new Date("2015-3-25");


Dạng "YYYY/MM/DD" không được xác định.

Một vài trình duyệt sẽ cố gắng để suy đoán định dạng. Một vài sẽ trả về NaN.

var d = new Date("2015/03/25");


Dạng "DD-MM-YYYY" cũng không được xác định

Một vài trình duyệt cũng sẽ cố gắng để suy đoán định dạng. Một vài sẽ trả về NaN.

var d = new Date("25-03-2015");



Kiểu thời gian Long JavaScript


Các kiểu Long thường được viết nhiều nhất với một cú pháp "MMM DD YYYY" như này:

ví dụ

var d = new Date("Mar 25 2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Tháng và ngày có thể ở bất kì thư tự nào:

ví dụ

var d = new Date("25 Mar 2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Và, tháng có thể được viết đầy đủ (January), hoặc tắt (Jan):

ví dụ

var d = new Date("January 25 2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


ví dụ

var d = new Date("Jan 25 2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>


Dấu phẩy bị bỏ qua. Tên thì phân biệt hoa thường:

ví dụ

var d = new Date("JANUARY, 25, 2015");
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
var d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>



Nhập thời gian - Ép kiểu thời gian


Nếu bạn có một chuỗi thời gian hợp lệ, bạn có thể sự dụng phương thức Date.parse() dể chuyển đổi thành mili gây.

Date.parse() trả về số của mili giây giữa thời gian đó và tháng 1, 1, 1970:

ví dụ

var msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Date.parse()</h2>

<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>

<p id="demo"></p>

<script>
var msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>

</body>
</html>


Bạn có thể sau đó sử dụng số của mili giây để chuyển đổi nó thành một đối tượng thời gian:

ví dụ

var msec = Date.parse("March 21, 2012");
var d = new Date(msec);
document.getElementById("demo").innerHTML = d;
<!DOCTYPE html>
<html>
<body>

<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>

<p id="demo"></p>

<script>
var msec = Date.parse("March 21, 2012");
var d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>