Bagaimana cara mendapatkan waktu hari di javascript / Node.js?

101

Saya ingin mendapatkan 1 hingga 24 , 1 menjadi 1 pagi Waktu Pasifik.

Bagaimana saya bisa mendapatkan nomor itu di Node.JS?

Saya ingin tahu jam berapa sekarang di waktu Pasifik.

TIMEX
sumber

Jawaban:

143

Anda harus memeriksa objek Tanggal .

Secara khusus, Anda bisa melihat metode getHours () untuk objek Tanggal.

getHours () mengembalikan waktu dari 0 - 23, jadi pastikan untuk menanganinya dengan tepat. Saya pikir 0-23 sedikit lebih intuitif karena waktu militer berjalan dari 0 - 23, tetapi terserah Anda.

Dengan pemikiran tersebut, kode tersebut akan menjadi sesuatu di sepanjang baris:

var date = new Date();
var current_hour = date.getHours();
jtsao22
sumber
Jika yang Anda maksud adalah pembulatan dengan menit (seperti dalam 1:45 -> 2:00), Anda dapat menggunakan metode getMinutes () untuk objek Tanggal.
jtsao22
2
Tautan ke MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Jangan tautkan ke sampah palsu "W3C Schools"
Max
151

Fungsi ini akan mengembalikan Anda tanggal dan waktu dalam format berikut: YYYY:MM:DD:HH:MM:SS. Ia juga bekerja di 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;

}
Ionică Bizău
sumber
10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
pengguna3125367
3
@ user3125367 Bagus! Jika fleksibilitas diperlukan dalam memformat tanggal, milik saya mungkin bekerja lebih baik. :-)
Ionică Bizău
@ user3125367 saran Anda meskipun ringkas sebenarnya tidak sama. Saya baru saja mengujinya, dan getDateTime () mengembalikan: 2020:06:10:10:12:35sedangkan, milik Anda mengembalikan: 2020:06:10:00:12:35 Sepertinya itu tidak mempertimbangkan penyesuaian zona waktu.
John Forbes
17

Lihat moment.jsperpustakaan. Ia bekerja dengan browser serta dengan Node.JS. Memungkinkan Anda untuk menulis

moment().hour();

atau

moment().hours();

tanpa menulis fungsi apa pun sebelumnya.

pengguna2513149
sumber
13

Kedua jawaban sebelumnya jelas merupakan solusi yang baik. Jika Anda setuju dengan perpustakaan, saya suka moment.js - itu lebih dari sekadar mendapatkan / memformat tanggal.

ghchinoy.dll
sumber
8

Ada metode asli untuk bekerja dengan tanggal

const date = new Date();
let hours = date.getHours();
p2lem8dev
sumber
6
Ini sepertinya peningkatan yang sangat kecil yang menghalangi keterbacaan.
Benjamin Lowry
3

Jika Anda hanya menginginkan string waktu, Anda dapat menggunakan ekspresi ini (dengan RegEx sederhana):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"
Pablo Andres Diaz Mazzaro
sumber
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 )

Ini akan menampilkan tanggal dalam bulan, hari, lalu tahun

Josh
sumber
0

Sebagai contoh, saya menggunakannya sebagai global dan kemudian memanggilnya untuk pemeriksaan waktu kapan jam operasi.

Di bawah ini dari index.js saya

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

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

Untuk memanggil nilai global dari file lain

    /*
     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!");
}
Moto Acidic
sumber
-1

Untuk memulai node Anda di zona waktu PST, gunakan perintah berikut di ubuntu.

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

Kemudian Anda dapat merujuk Perpustakaan Tanggal untuk mendapatkan fungsi tanggal dan waktu kalkulasi khusus di node.

Untuk menggunakannya di sisi klien, lihat tautan ini , unduh index.js dan assertHelper.js, lalu sertakan di HTML Anda.

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

Anda dapat menggunakan fungsi yang berbeda seperti yang diberikan dalam contoh untuk mendapatkan tanggal khusus.

Jika hari pertama dalam seminggu adalah Minggu, maka tanggal 15 Juni 2015.

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

Jika hari pertama dalam seminggu adalah Selasa, maka angka minggu dalam tahun akan diikuti pada tanggal 15 Juni 2015 sebagai salah satu tanggal.

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

Lihat fungsi lain untuk memenuhi persyaratan tanggal kustom Anda.

Vikash Rajpurohit
sumber