Hiển thị ngày và giờ hiện tại trong thẻ H1 bằng JavaScript DOM
JavaScript Examples | by
Ngày và giờ là những thông tin cơ bản nhưng rất quan trọng trong các ứng dụng web. Việc hiển thị thời gian chính xác không chỉ giúp người dùng theo dõi tiến độ công việc mà còn tăng tính tương tác của trang web. Trong bài tập này, chúng ta sẽ tìm hiểu cách sử dụng JavaScript để lấy ngày và giờ hiện tại của hệ thống, đồng thời cập nhật chúng một cách động vào giao diện người dùng thông qua thẻ <h1>
.
Thông qua bài tập này, bạn sẽ làm quen với cách sử dụng đối tượng Date
trong JavaScript để lấy và xử lý thông tin thời gian. Đồng thời, bạn cũng sẽ học cách sử dụng DOM để thay đổi nội dung của trang web, một kỹ năng quan trọng khi phát triển ứng dụng web tương tác. Bài tập này không chỉ đơn giản là hiển thị thời gian mà còn giúp bạn hiểu rõ hơn về cách thức hoạt động của JavaScript trong việc thao tác với các phần tử HTML, tạo ra một giao diện người dùng năng động và thân thiện.
Yêu cầu bài tập cách sử dụng đối tượng Date trong JavaScript
Lấy ngày và giờ hiện tại
Sử dụng đối tượng Date
để lấy thời gian hệ thống:
-
JavaScript cung cấp đối tượng
Date
để làm việc với ngày và giờ. Để lấy thời gian hiện tại của hệ thống, bạn có thể tạo một đối tượngDate
mới mà không cần tham số, điều này sẽ trả về thời gian hệ thống hiện tại. -
Ví dụ:
const now = new Date();
Đoạn mã trên sẽ tạo ra một đối tượng now
chứa thông tin ngày và giờ hiện tại.
Định dạng thời gian thành chuỗi dễ đọc:
-
Sau khi có đối tượng
Date
, bạn cần lấy các thông tin ngày, giờ, phút và giây theo định dạng dễ hiểu. Bạn có thể sử dụng các phương thức như.getDate()
,.getMonth()
,.getFullYear()
,.getHours()
,.getMinutes()
,.getSeconds()
để lấy các phần cụ thể của thời gian. -
Ví dụ, để hiển thị thời gian theo định dạng "ngày/tháng/năm giờ:phút:giây":
const day = now.getDate(); const month = now.getMonth() + 1; // Tháng trong JavaScript bắt đầu từ 0 const year = now.getFullYear(); const hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds(); const formattedTime = `${day}/${month}/$2025 ${hours}:${minutes}:${seconds}`; console.log(formattedTime);
Kết quả: Chuỗi thời gian sẽ có định dạng ví dụ như "28/04/2025 14:35:20".
Hiển thị thời gian trong thẻ <h1>
Cập nhật nội dung của thẻ <h1>
để hiển thị ngày và giờ hiện tại bằng JavaScript:
-
Sau khi có chuỗi thời gian đã được định dạng, bạn sẽ cần hiển thị thời gian này trong một phần tử HTML trên trang web. Để làm điều này, bạn sử dụng phương thức DOM
document.getElementById()
để chọn thẻ<h1>
và sau đó thay đổi nội dung của thẻ bằng cách sử dụng thuộc tínhinnerText
hoặcinnerHTML
. -
Ví dụ, nếu bạn có thẻ
<h1>
trong HTML như sau:
<h1 id="time"></h1>
Trong JavaScript, bạn có thể sử dụng đoạn mã sau để cập nhật thẻ <h1>
:
document.getElementById('time').innerText = formattedTime;
Khi chạy mã, thời gian sẽ được hiển thị trong thẻ <h1>
.
Cập nhật thời gian liên tục (nếu cần)
Sử dụng setInterval()
để làm mới thời gian mỗi giây:
-
Để cập nhật thời gian mỗi giây mà không cần tải lại trang, bạn có thể sử dụng hàm
setInterval()
. Hàm này cho phép bạn chạy một đoạn mã sau một khoảng thời gian định sẵn, ví dụ mỗi giây. -
Đoạn mã dưới đây sẽ gọi lại hàm cập nhật thời gian mỗi giây:
setInterval(function() { const now = new Date(); const day = now.getDate(); const month = now.getMonth() + 1; const year = now.getFullYear(); const hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds(); const formattedTime = `${day}/${month}/$2025 ${hours}:${minutes}:${seconds}`; document.getElementById('time').innerText = formattedTime; }, 1000); // Cập nhật mỗi giây (1000 milliseconds)
Giải thích:
-
Hàm
setInterval()
sẽ gọi hàm cập nhật thời gian sau mỗi 1000 mili giây (1 giây). Điều này giúp đồng hồ hiển thị thời gian chính xác và tự động cập nhật. -
Mỗi khi thời gian được cập nhật, nội dung của thẻ
<h1>
sẽ thay đổi để hiển thị thời gian mới nhất.
Hướng dẫn cách sử dụng đối tượng Date
trong JavaScript
Tạo file HTML cơ bản
Mục tiêu: Tạo một file HTML đơn giản có thẻ <h1>
nơi sẽ hiển thị thời gian hiện tại.
Cách thực hiện:
Ví dụ cấu trúc HTML cơ bản:
-
Mở trình soạn thảo văn bản (Text Editor) như Visual Studio Code, Sublime Text, hoặc bất kỳ công cụ nào bạn ưa thích.
-
Tạo một file HTML mới, ví dụ
index.html
. -
Cấu trúc HTML cơ bản bao gồm phần tiêu đề, body và thẻ
<h1>
để hiển thị thời gian.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Hiển thị ngày và giờ hiện tại</title> </head> <body> <h1 id="time"></h1> <script src="script.js"></script> </body> </html>
Trong đoạn mã trên, thẻ <h1 id="time"></h1>
sẽ là nơi hiển thị thời gian hiện tại. Bạn có thể thay đổi nội dung trong thẻ này bằng JavaScript.
Chúng ta sẽ viết mã JavaScript trong file script.js
, được liên kết trong thẻ <script>
.
Lấy thời gian hiện tại bằng JavaScript
Mục tiêu: Sử dụng đối tượng Date
trong JavaScript để lấy thời gian hiện tại của hệ thống và chuyển nó thành chuỗi dễ đọc.
Cách thực hiện:
Ví dụ mã JavaScript lấy thời gian và định dạng:
-
Tạo một đối tượng
Date
trong JavaScript để lấy thời gian hệ thống. -
Dùng các phương thức của đối tượng
Date
như.getDate()
,.getMonth()
,.getFullYear()
,.getHours()
,.getMinutes()
,.getSeconds()
để lấy các phần của ngày giờ. -
Định dạng các giá trị lấy được thành một chuỗi thời gian dễ đọc, ví dụ: "28/04/2025 14:35:20".
const now = new Date(); // Lấy thời gian hiện tại const day = now.getDate(); // Lấy ngày const month = now.getMonth() + 1; // Lấy tháng (tháng bắt đầu từ 0, nên cộng thêm 1) const year = now.getFullYear(); // Lấy năm const hours = now.getHours(); // Lấy giờ const minutes = now.getMinutes(); // Lấy phút const seconds = now.getSeconds(); // Lấy giây // Định dạng thời gian thành chuỗi dễ đọc const formattedTime = `${day}/${month}/$2025 ${hours}:${minutes}:${seconds}`;
Cập nhật thời gian vào thẻ <h1>
Mục tiêu: Sử dụng DOM để cập nhật nội dung của thẻ <h1>
với thời gian đã lấy.
Cách thực hiện:
Ví dụ mã JavaScript cập nhật thời gian vào thẻ <h1>
:
-
Sử dụng phương thức
document.getElementById()
để truy cập thẻ<h1>
cóid="time"
. -
Cập nhật nội dung của thẻ bằng thuộc tính
innerText
với chuỗi thời gian đã định dạng.
document.getElementById('time').innerText = formattedTime;
Mã này sẽ hiển thị thời gian trong thẻ <h1>
với id="time"
.
Cập nhật thời gian liên tục (nếu cần)
Mục tiêu: Sử dụng setInterval()
để làm mới thời gian mỗi giây và cập nhật lại thẻ <h1>
.
Cách thực hiện:
Ví dụ mã JavaScript cập nhật thời gian mỗi giây:
-
Để hiển thị thời gian thực và tự động cập nhật, bạn có thể sử dụng
setInterval()
để gọi hàm cập nhật thời gian mỗi giây. -
Hàm
setInterval()
sẽ thực thi một hàm sau mỗi khoảng thời gian nhất định (ở đây là 1000 mili giây, tức 1 giây).
setInterval(function() { const now = new Date(); // Lấy thời gian hiện tại const day = now.getDate(); const month = now.getMonth() + 1; const year = now.getFullYear(); const hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds(); // Định dạng thời gian const formattedTime = `${day}/${month}/$2025 ${hours}:${minutes}:${seconds}`; // Cập nhật thời gian vào thẻ <h1> document.getElementById('time').innerText = formattedTime; }, 1000); // Cập nhật mỗi giây
Trong đoạn mã này, hàm setInterval()
sẽ gọi hàm mỗi giây, cập nhật thời gian mới vào thẻ <h1>
.
Gợi ý cách sử dụng đối tượng Date
trong JavaScript
Tạo file HTML đơn giản có thẻ <h1>
Mục tiêu: Tạo một file HTML cơ bản với cấu trúc đơn giản có thẻ <h1>
để hiển thị thời gian hiện tại.
Cách thực hiện:
Cấu trúc HTML cơ bản:
-
Mở trình soạn thảo văn bản (Text Editor) như Visual Studio Code, Sublime Text, hoặc Notepad++.
-
Tạo một file HTML mới, ví dụ
index.html
. -
Tạo một cấu trúc HTML cơ bản với thẻ
<h1>
để hiển thị thời gian.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Hiển thị ngày và giờ hiện tại</title> </head> <body> <h1 id="time"></h1> <!-- Thẻ h1 để hiển thị thời gian --> <script src="script.js"></script> <!-- Liên kết file JavaScript --> </body> </html>
Thẻ <h1 id="time"></h1>
sẽ là nơi hiển thị thời gian. Bạn có thể thay đổi nội dung của thẻ này bằng JavaScript.
Thẻ <script src="script.js"></script>
sẽ liên kết mã JavaScript của bạn từ file script.js
, nơi bạn sẽ viết mã cập nhật thời gian.
Thêm mã JavaScript vào trong file HTML
Mục tiêu: Sử dụng mã JavaScript để lấy thời gian hệ thống và cập nhật nội dung của thẻ <h1>
.
Cách thực hiện:
Đoạn mã JavaScript để lấy thời gian và cập nhật vào thẻ <h1>
:
-
Tạo một file JavaScript mới, ví dụ
script.js
. -
Viết một hàm JavaScript để lấy thời gian hiện tại và cập nhật vào thẻ
<h1>
.
function updateTime() { const now = new Date(); // Lấy thời gian hiện tại const hours = now.getHours(); // Lấy giờ const minutes = now.getMinutes(); // Lấy phút const seconds = now.getSeconds(); // Lấy giây // Định dạng chuỗi thời gian const timeString = `${hours}:${minutes}:${seconds}`; // Cập nhật nội dung của thẻ <h1> với thời gian đã lấy document.getElementById('time').innerText = timeString; } // Gọi hàm updateTime mỗi giây để cập nhật thời gian liên tục setInterval(updateTime, 1000); // 1000 ms = 1 giây
Giải thích đoạn mã:
-
setInterval(updateTime, 1000);
sẽ gọi hàmupdateTime()
mỗi giây để cập nhật thời gian liên tục trên giao diện. -
document.getElementById('time').innerText = timeString;
cập nhật thẻ<h1>
với nội dung thời gian. -
Chuỗi thời gian được định dạng thành "giờ:phút:giây" bằng cách sử dụng cú pháp
${}
. -
Các phương thức
.getHours()
,.getMinutes()
,.getSeconds()
được sử dụng để lấy giờ, phút và giây từ đối tượngDate
. -
const now = new Date();
lấy đối tượngDate
hiện tại. -
Hàm
updateTime()
được tạo ra để lấy thời gian hiện tại mỗi lần được gọi.
Cập nhật thời gian liên tục
Mục tiêu: Đảm bảo thời gian được hiển thị liên tục và tự động cập nhật mỗi giây.
Cách thực hiện:
Đoạn mã JavaScript sử dụng setInterval()
để cập nhật liên tục:
-
Để cập nhật thời gian mỗi giây mà không cần phải tải lại trang, bạn có thể sử dụng
setInterval()
trong JavaScript. -
setInterval()
là một hàm cho phép bạn gọi một hàm nào đó sau mỗi khoảng thời gian xác định (thời gian tính bằng mili giây). Cụ thể, bạn sẽ gọi hàmupdateTime()
mỗi giây (1000 mili giây). -
Với cách này, mỗi giây, hàm
updateTime()
sẽ được thực thi, giúp thời gian hiển thị trên trang luôn được cập nhật.
setInterval(updateTime, 1000); // Cập nhật mỗi giây (1000 ms)
Mỗi khi gọi lại hàm updateTime()
, nó sẽ lấy thời gian mới và cập nhật lại nội dung thẻ <h1>
với thời gian hiện tại, làm cho đồng hồ luôn chính xác.
Mở rộng cách sử dụng đối tượng Date
trong JavaScript
Định dạng ngày và giờ
Mục tiêu: Cải tiến cách hiển thị thời gian theo các định dạng khác nhau, giúp hiển thị ngày và giờ dễ đọc và rõ ràng hơn.
Cách thực hiện:
Đoạn mã JavaScript định dạng ngày và giờ:
-
Bên cạnh việc hiển thị giờ, bạn có thể thêm ngày tháng vào trong chuỗi thời gian.
-
Bạn có thể hiển thị ngày theo định dạng ngày/tháng/năm và giờ theo định dạng "Giờ:Phút:Giây".
-
Ví dụ, thay vì chỉ hiển thị "15:30:45", bạn có thể hiển thị "Ngày 28/04/2025 15:30:45".
function updateTime() { const now = new Date(); const day = now.getDate(); // Lấy ngày const month = now.getMonth() + 1; // Lấy tháng (nhớ cộng thêm 1 vì tháng bắt đầu từ 0) const year = now.getFullYear(); // Lấy năm const hours = now.getHours(); // Lấy giờ const minutes = now.getMinutes(); // Lấy phút const seconds = now.getSeconds(); // Lấy giây // Định dạng thời gian thành "Ngày 28/04/2025 15:30:45" const timeString = `Ngày ${day}/${month}/$2025 ${hours}:${minutes}:${seconds}`; document.getElementById('time').innerText = timeString; }
Giải thích:
-
Bạn có thể sử dụng cú pháp
Ngày ${day}/${month}/$2025 ${hours}:${minutes}:${seconds}
để tạo ra chuỗi thời gian đầy đủ với ngày tháng và giờ. -
Việc định dạng này giúp thời gian hiển thị dễ đọc hơn và bao quát tất cả thông tin về ngày giờ.
Thêm múi giờ
Mục tiêu: Hiển thị thời gian theo múi giờ cụ thể, hoặc theo múi giờ của người dùng.
Cách thực hiện:
Ví dụ mã hiển thị thời gian theo múi giờ UTC:
-
JavaScript cung cấp phương thức
Intl.DateTimeFormat()
để hỗ trợ hiển thị thời gian theo múi giờ của người dùng hoặc múi giờ xác định. -
Bạn có thể sử dụng
getTimezoneOffset()
để lấy chênh lệch múi giờ giữa giờ địa phương và UTC. Hoặc bạn có thể dùng thư viện nhưmoment.js
để xử lý múi giờ dễ dàng hơn. -
Bạn có thể hiển thị thời gian theo múi giờ GMT, hoặc chuyển đổi múi giờ cho phù hợp với người dùng.
function updateTime() { const now = new Date(); const day = now.getDate(); const month = now.getMonth() + 1; const year = now.getFullYear(); const hours = now.getUTCHours(); // Lấy giờ UTC const minutes = now.getUTCMinutes(); // Lấy phút UTC const seconds = now.getUTCSeconds(); // Lấy giây UTC // Định dạng thời gian thành "Ngày 28/04/2025 15:30:45 UTC" const timeString = `Ngày ${day}/${month}/$2025 ${hours}:${minutes}:${seconds} UTC`; document.getElementById('time').innerText = timeString; }
Giải thích:
-
Sử dụng các phương thức
getUTCHours()
,getUTCMinutes()
, vàgetUTCSeconds()
để lấy thời gian theo múi giờ UTC. -
Hiển thị "UTC" sau thời gian để rõ ràng múi giờ là UTC.
Chuyển đổi sang 12 giờ hoặc 24 giờ
Mục tiêu: Cho phép chuyển đổi giữa định dạng 12 giờ và 24 giờ theo yêu cầu.
Cách thực hiện:
Ví dụ mã JavaScript chuyển đổi giữa định dạng 24 giờ và 12 giờ:
-
Để hiển thị thời gian theo định dạng 12 giờ, bạn cần xác định "AM" hoặc "PM" dựa trên giá trị giờ.
-
Để chuyển từ 24 giờ sang 12 giờ, bạn cần kiểm tra nếu giờ lớn hơn hoặc bằng 12, và sau đó điều chỉnh lại giá trị giờ và thêm "AM" hoặc "PM".
function updateTime() { const now = new Date(); const day = now.getDate(); const month = now.getMonth() + 1; const year = now.getFullYear(); let hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds(); // Kiểm tra nếu giờ lớn hơn 12, chuyển sang 12 giờ let period = 'AM'; // Mặc định là AM if (hours >= 12) { period = 'PM'; // Nếu giờ >= 12, là PM if (hours > 12) { hours -= 12; // Chuyển sang 12 giờ } } // Định dạng thời gian thành "Ngày 28/04/2025 03:30:45 PM" const timeString = `Ngày ${day}/${month}/$2025 ${hours}:${minutes}:${seconds} ${period}`; document.getElementById('time').innerText = timeString; }
Giải thích:
-
Hàm
updateTime()
chuyển đổi giờ từ 24 giờ sang 12 giờ, đồng thời thêm ký hiệu "AM" hoặc "PM" vào cuối chuỗi. -
Nếu giờ là 12 hoặc hơn, chúng ta sẽ gắn thêm "PM", nếu không, sẽ là "AM".
Kết bài
Trong bài tập này, chúng ta đã học cách sử dụng JavaScript để lấy và hiển thị ngày và giờ hiện tại trên trang web. Qua việc thao tác với đối tượng Date
và các phương thức liên quan, chúng ta đã có thể lấy thời gian từ hệ thống và hiển thị nó trên giao diện người dùng. Đồng thời, việc sử dụng DOM để cập nhật nội dung của thẻ <h1>
giúp chúng ta hiểu rõ hơn về cách làm việc với các phần tử HTML từ JavaScript.
Ngoài ra, chúng ta cũng đã mở rộng bài tập bằng cách thêm các tính năng như định dạng thời gian linh hoạt, hiển thị theo múi giờ và chuyển đổi giữa định dạng 12 giờ và 24 giờ. Các kỹ thuật này không chỉ giúp cải thiện khả năng lập trình JavaScript mà còn làm cho ứng dụng trở nên thân thiện và dễ sử dụng hơn.
Việc thực hành này sẽ giúp các bạn củng cố kỹ năng JavaScript cơ bản và làm quen với việc thao tác với thời gian, điều rất quan trọng trong các ứng dụng web thực tế. Chúc các bạn thành công và có thể áp dụng những kiến thức đã học vào các dự án của mình!