Câu trả lời:
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();
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;
}
(new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
2020:06:10:10:12:35
trong 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ờ.
Kiểm tra moment.js
thư 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.
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();
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"
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
Đố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!");
}
Để 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.