Làm thế nào để console.log() ra 1 thông báo theo giờ

Hi mn, hiện tại mình đang làm 1 project nodejs nhỏ, mình muốn console.log ra thông báo chào buổi sáng khi đến 6h sáng nhưng mình không biết thế nào. mong ace giúp đỡ

bạn có biết setInterval hay setTimeout không?
tìm hiểu thử xem

2 Likes

không còn cách nào ạ

tất nhiên là còn, thậm chí là rất nhiều cách
vấn đề ở chỗ, để chọn cách phù hợp, thì cần có những yêu cầu cụ thể
còn câu hỏi của bạn, chỉ đơn giản là 6h sáng ra cái câu chào thì setinterval hay settimeout đều đáp ứng được, có vấn đề gì đâu

3 Likes

Để console.log() ra thông báo chào buổi sáng khi đến 6 giờ sáng trong Node.js, bạn có thể sử dụng mô-đun setInterval() để kiểm tra thời gian định kỳ. Dưới đây là một ví dụ cụ thể về cách làm điều đó:

javascriptCopy code

function printMorningGreeting() {
  // Lấy thời gian hiện tại
  const currentTime = new Date();

  // Kiểm tra xem hiện tại là 6 giờ sáng hay không
  if (currentTime.getHours() === 6 && currentTime.getMinutes() === 0) {
    console.log("Chào buổi sáng!");
  }
}

// Đặt một interval để kiểm tra và in thông báo vào mỗi phút
setInterval(printMorningGreeting, 60000); // 60000 milliseconds = 1 phút

Giải thích:

  1. printMorningGreeting() : Hàm này kiểm tra thời gian hiện tại và nếu đúng là 6 giờ sáng (00:00), nó sẽ in ra thông báo “Chào buổi sáng!”.
  2. setInterval(printMorningGreeting, 60000) : Đoạn mã này đặt một interval (định kỳ) để gọi hàm printMorningGreeting vào mỗi phút (60000 milliseconds). Điều này sẽ cho phép chúng ta kiểm tra thời gian một cách định kỳ và in ra thông báo nếu đúng giờ.

Khi bạn chạy mã trên, nó sẽ kiểm tra thời gian mỗi phút và nếu đến 6 giờ sáng, nó sẽ in ra thông báo “Chào buổi sáng!”.

3 Likes

Dùng node-cron - npm (npmjs.com)

var cron = require('node-cron');
/* '0 0 6-9/1 * * *': At 0 minutes past the hour, every 1 hours, between 06:00 AM and 09:59 AM */
var task = cron.schedule('0 0 6-9/1 * * *', () =>  {
  console.log('Chào buổi sáng');
});

cron expression: Cron expression generator by Cronhub

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?