ฉันจะหาเวลาของวันใน javascript / Node.js ได้อย่างไร


101

ฉันอยากได้1 ถึง 24 , 1 เป็น 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

2
เชื่อมโยงไปยัง MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... อย่าโยงไปที่ขยะปลอม "W3C Schools"
สูงสุด

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

3
@ user3125367 ดีมาก! หากต้องการความยืดหยุ่นในการจัดรูปแบบวันที่ของฉันอาจทำงานได้ดีขึ้น :-)
IonicăBizău

@ user3125367 ข้อเสนอแนะของคุณในขณะที่ความกระชับไม่เหมือนกัน ฉันเพิ่งทดสอบและ getDateTime () ส่งคืน: 2020:06:10:10:12:35ในขณะที่ของคุณกลับมา: 2020:06:10:00:12:35 ดูเหมือนว่าจะไม่พิจารณาการปรับโซนเวลา
John Forbes

17

ตรวจสอบmoment.jsห้องสมุด ใช้งานได้กับเบราว์เซอร์และ Node.JS. ช่วยให้คุณสามารถเขียน

moment().hour();

หรือ

moment().hours();

โดยไม่ต้องเขียนฟังก์ชันใด ๆ ล่วงหน้า


13

คำตอบก่อนหน้านี้ทั้งสองคำตอบที่ดีแน่นอน ถ้าคุณคล้อยตามห้องสมุดฉันชอบmoment.js - มันทำได้มากกว่าแค่รับ / จัดรูปแบบวันที่


8

มีวิธีดั้งเดิมในการทำงานกับวันที่

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

6
ดูเหมือนว่าจะเป็นการปรับปรุงเล็กน้อยที่ขัดขวางความสามารถในการอ่าน
Benjamin Lowry

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();

เพื่อเรียกค่าของ global จากไฟล์อื่น

    /*
     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 มิถุนายน 2558 จะเป็นวันใด

 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

อ้างถึงฟังก์ชันอื่น ๆ เพื่อตอบสนองความต้องการวันที่ที่คุณกำหนดเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.