Làm cách nào để lấy thời gian trong ngày trong javascript / Node.js?


101

Tôi muốn lấy 1 đến 24 , 1 là 1 giờ sáng Giờ Thái Bình Dương.

Làm cách nào để lấy số đó trong Node.JS?

Tôi muốn biết bây giờ là mấy giờ theo giờ Thái Bình Dương.

Câu trả lời:


143

Bạn nên kiểm tra đối tượng Ngày .

Đặc biệt, bạn có thể xem phương thức getHours () cho đối tượng Date.

getHours () trả về thời gian từ 0 - 23, vì vậy hãy đảm bảo xử lý nó cho phù hợp. Tôi nghĩ 0-23 trực quan hơn một chút vì thời gian quân đội bắt đầu từ 0 - 23, nhưng tùy thuộc vào bạn.

Với ý nghĩ đó, mã sẽ là một cái gì đó dọc theo dòng:

var date = new Date();
var current_hour = date.getHours();

Nếu bạn muốn làm tròn theo phút (như 1:45 -> 2:00), bạn có thể sử dụng phương thức getMinutes () cho đối tượng Date.
jtsao22

2
Liên kết đến MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Đừng liên kết với rác giả "Trường học W3C" đó
Tối đa

150

Chức năng này sẽ đưa bạn trở ngày và thời gian trong các định dạng sau: YYYY:MM:DD:HH:MM:SS. Nó cũng hoạt động trong Node.js.

function getDateTime() {

    var date = new Date();

    var hour = date.getHours();
    hour = (hour < 10 ? "0" : "") + hour;

    var min  = date.getMinutes();
    min = (min < 10 ? "0" : "") + min;

    var sec  = date.getSeconds();
    sec = (sec < 10 ? "0" : "") + sec;

    var year = date.getFullYear();

    var month = date.getMonth() + 1;
    month = (month < 10 ? "0" : "") + month;

    var day  = date.getDate();
    day = (day < 10 ? "0" : "") + day;

    return year + ":" + month + ":" + day + ":" + hour + ":" + min + ":" + sec;

}

10
Rất tiếc. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367 Ngày

3
@ user3125367 Hay lắm! Nếu cần có sự linh hoạt trong việc định dạng ngày tháng, thì của tôi có thể hoạt động tốt hơn. :-)
Ionică Bizău

@ user3125367 đề xuất ngắn gọn của bạn thực ra không giống nhau. Tôi vừa thử nghiệm nó và getDateTime () trả về: 2020:06:10:10:12:35trong khi đó, của bạn trả về: 2020:06:10:00:12:35 Có vẻ như nó không xem xét điều chỉnh múi giờ.
John Forbes

17

Kiểm tra moment.jsthư viện. Nó hoạt động với các trình duyệt cũng như với Node.JS. Cho phép bạn viết

moment().hour();

hoặc là

moment().hours();

mà không cần viết trước bất kỳ chức năng nào.


13

Cả hai câu trả lời trước chắc chắn là giải pháp tốt. Nếu bạn có thể sử dụng thư viện, tôi thích moment.js - nó làm được nhiều thứ hơn là chỉ lấy / định dạng ngày.


8

Có phương pháp gốc để làm việc với ngày tháng

const date = new Date();
let hours = date.getHours();

6
Đây dường như là một cải tiến rất nhỏ cản trở khả năng đọc.
Benjamin Lowry

3

Nếu bạn chỉ muốn chuỗi thời gian, bạn có thể sử dụng biểu thức này (với một RegEx đơn giản):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"

0
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var day  = date.getDate();
day = (hour > 12 ? "" : "") + day - 1;
day = (day < 10 ? "0" : "") + day;
x = ":"
console.log( month + x + day + x + year )

Nó sẽ hiển thị ngày trong tháng, ngày, sau đó là năm


0

Đối với ví dụ của tôi, tôi đã sử dụng nó như một toàn cầu và sau đó gọi nó để kiểm tra thời gian về số giờ hoạt động.

Dưới đây là từ index.js của tôi

global.globalDay = new Date().getDay(); 

global.globalHours = new Date().getHours();

Để gọi giá trị của toàn cục từ một tệp khác

    /*
     Days of the Week.
     Sunday = 0, Monday = 1, Tuesday = 2, Wensday = 3, Thursday = 4, Friday = 5, Saturday = 6

     Hours of the Day.
     0 = Midnight, 1 = 1am, 12 = Noon, 18 = 6pm, 23 = 11pm
     */

if (global.globalDay === 6 || global.globalDay === 0) {
     console.log('Its the weekend.');
} else if (global.globalDay > 0 && global.globalDay < 6 && global.globalHours > 8 && global.globalHours < 18) {
     console.log('During Business Hours!');
} else {
     console.log("Outside of Business hours!");
}

-1

Để bắt đầu nút của bạn trong múi giờ PST, hãy sử dụng lệnh sau trong ubuntu.

TZ=\"/usr/share/zoneinfo/GMT+0\" && export TZ && npm start &

Sau đó, bạn có thể tham khảo Thư viện ngày để nhận các chức năng ngày và giờ tính toán tùy chỉnh trong nút.

Để sử dụng nó, phía máy khách hãy tham khảo liên kết này , tải xuống index.js và khẳng địnhHelper.js và đưa nó vào HTML của bạn.

<script src="assertHelper.js"></script>
<script type="text/javascript" src="index.js"></script>
$( document ).ready(function() {
    DateLibrary.getDayOfWeek(new Date("2015-06-15"),{operationType:"Day_of_Week"}); // Output : Monday
}

Bạn có thể sử dụng các hàm khác nhau như được đưa ra trong các ví dụ để lấy ngày tùy chỉnh.

Nếu ngày đầu tiên của tuần là Chủ nhật thì ngày 15 tháng 6 năm 2015 sẽ là ngày thứ mấy.

 DateLibrary.getDayOfWeek(new Date("2015-06-15"),
    {operationType:"Day_Number_of_Week",
        startDayOfWeek:"Sunday"}) // Output : 1

Nếu ngày đầu tiên của tuần là thứ Ba, thì số tuần nào trong năm sẽ theo sau vào ngày 15 tháng 6 năm 2015 làm một trong những ngày đó.

 DateLibrary.getWeekNumber(new Date("2015-06-15"),
    {operationType:"Week_of_Year",
        startDayOfWeek:"Tuesday"}) // Output : 24

Tham khảo các chức năng khác để đáp ứng các yêu cầu ngày tùy chỉnh của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.