Как узнать время дня в javascript / Node.js?

101

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

Как я могу получить этот номер в Node.JS?

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

TIMEX
источник

Ответы:

143

Вы должны проверить объект Date .

В частности, вы можете взглянуть на метод getHours () для объекта Date.

getHours () возвращает время от 0 до 23, поэтому не забудьте обработать его соответствующим образом. Я думаю, что 0-23 немного более интуитивно понятен, поскольку военное время идет от 0 до 23, но это зависит от вас.

Имея это в виду, код будет примерно таким:

var date = new Date();
var current_hour = date.getHours();
jtsao22
источник
Если вы имеете в виду округление с использованием минут (как в 1:45 -> 2:00), вы можете использовать метод getMinutes () для объекта Date.
jtsao22,
2
Ссылка на MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Не
Макс,
150

Эта функция вернет вам дату и время в следующем формате: 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
Ой. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367 01
3
@ user3125367 Отлично! Если нужна гибкость в форматировании даты, мой может работать лучше. :-)
Ionică Bizău 01
@ user3125367 ваше предложение, пока лаконичное, на самом деле не то же самое. Я только что протестировал его, и getDateTime () вернул: 2020:06:10:10:12:35тогда как ваш вернулся: 2020:06:10:00:12:35 похоже, он не учел корректировки часового пояса.
Джон Форбс
17

Проверьте moment.jsбиблиотеку. Он работает как с браузерами, так и с Node.JS. Позволяет писать

moment().hour();

или

moment().hours();

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

user2513149
источник
13

Оба предыдущих ответа определенно являются хорошими решениями. Если вам нравится библиотека, мне нравится moment.js - он делает гораздо больше, чем просто получение / форматирование даты.

гчиной
источник
8

Есть собственный метод работы с датой

const date = new Date();
let hours = date.getHours();
p2lem8dev
источник
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 &

Затем вы можете обратиться к библиотеке дат, чтобы получить настраиваемые функции даты и времени расчета в node.

Чтобы использовать его на стороне клиента , перейдите по этой ссылке , загрузите 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

Обратитесь к другим функциям для выполнения ваших требований к дате.

Викаш Раджпурохит
источник