如何在javascript / Node.js中获取时间?


101

我想得到1到24,太平洋时间凌晨1点。

如何在Node.JS中获得该号码?

我想知道现在太平洋时间现在几点。

Answers:


143

您应该检出Date对象

特别是,您可以查看Date对象的getHours()方法。

getHours()返回0到23之间的时间,因此请确保进行相应处理。我认为0-23有点直观,因为军事时间是从0-23开始,但这取决于您。

考虑到这一点,代码将类似于以下内容:

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

如果要用分钟四舍五入(如1:45-> 2:00),则可以对Date对象使用getMinutes()方法。
jtsao22 2011年

2
链接到MDN:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。不要链接到“ W3C学校”假垃圾
Max

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
w (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367'3

3
@ user3125367不错的一个!如果在格式化日期时需要灵活性,我的可能会更好。:-)
尼卡比曹

@ 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
这似乎是一个很小的改进,妨碍了可读性。
本杰明·洛瑞


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
}

您可以使用示例中提供的不同功能来获取自定义日期。

如果一周的第一天是星期日,则该天是2015年6月15日。

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

如果一周的第一天是星期二,则将在2015年6月15日作为年份中的哪个星期。

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

请参考其他功能来满足您的自定义日期要求。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.