Як я можу отримати час доби в javascript / Node.js?


101

Я хочу отримати 1 - 24 , 1 - тихоокеанський час.

Як я можу отримати це число в Node.JS?

Я хочу дізнатися, який саме час в тихоокеанський час зараз.

Відповіді:


143

Ви повинні перевірити об’єкт Дата .

Зокрема, ви можете переглянути метод getHours () для об’єкта Date.

getHours () повертає час від 0 до 23, тому переконайтеся, що з цим відповідати. Я думаю, що 0-23 трохи інтуїтивніше, бо час військового часу становить від 0 до 23, але це залежить від вас.

Зважаючи на це, код буде чимось таким чином:

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

Якщо ви маєте на увазі округлення хвилин (як в 1:45 -> 2:00), ви можете використовувати метод getMinutes () для об'єкта Date.
jtsao22


151

Ця функція поверне вам дату і час в такому форматі: YYYY:MM:DD:HH:MM:SS. Він також працює в 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
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
користувач3125367

3
@ user3125367 Гарний! Якщо потрібна гнучкість у форматуванні дати, моя може працювати краще. :-)
Ionică Bizău

@ user3125367 Ваша пропозиція, хоча лаконічна, насправді не однакова. Я просто перевірив це, і getDateTime () повернувся: 2020:06:10:10:12:35тоді як ваш повернувся: 2020:06:10:00:12:35 Схоже, він не врахував коригування часового поясу.
Джон Форбс

17

Ознайомтеся з moment.jsбібліотекою. Він працює як із браузерами, так і з Node.JS. Дозволяє писати

moment().hour();

або

moment().hours();

без попереднього написання будь-яких функцій.


13

Обидва попередні відповіді, безумовно, хороші рішення. Якщо ви прихильні до бібліотеки, мені подобається moment.js - це набагато більше, ніж просто отримання / форматування дати.


8

Існує рідний метод роботи з датою

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

6
Це здається дуже незначним покращенням, яке перешкоджає читанню.
Бенджамін Лоурі

3

Якщо ви хочете лише часовий рядок, ви можете використовувати цей вираз (за допомогою простого RegEx):

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 )

Він відображатиме дату в місяці, дні, а потім у році


0

Для мого випадку я використовував його як глобальний, а потім назвав його для перевірки часу, коли години роботи.

Нижче з мого index.js

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

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

Виклик глобального значення з іншого файлу

    /*
     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

Щоб запустити свій вузол у часовому поясі PST, використовуйте наступну команду в ubuntu.

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

Потім ви можете звернутися до бібліотеки дат, щоб отримати власні функції дати та часу обчислення у вузлі.

Щоб використовувати його на стороні клієнта, перейдіть за цим посиланням , завантажте index.js та assertHelper.js і включіть його у свій HTML.

<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
}

Ви можете використовувати різні функції, наведені в прикладах, щоб отримати власні дати.

Якщо перший день тижня - неділя, то який день буде 15 червня 2015 року.

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

Якщо перший день тижня - вівторок, то число тижня в році буде підписано 15 червня 2015 року як одну з дат.

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

Перегляньте інші функції, щоб виконати власні вимоги до дати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.