繁体   English   中英

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

[英]How do I get the time of day in javascript/Node.js?

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

我怎样才能在 Node.JS 中获得那个数字?

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

此函数将以以下格式返回日期和时间: 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;

}

您应该签出Date 对象

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

getHours() 返回 0 - 23 之间的时间,因此请确保相应地处理它。 我认为 0-23 更直观一些,因为军用时间从 0 到 23,但这取决于您。

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

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

查看moment.js库。 它适用于浏览器以及 Node.JS。 允许你写

moment().hour();

要么

moment().hours();

无需事先编写任何函数。

两个先前的答案绝对是很好的解决方案。 如果你喜欢一个库,我喜欢moment.js - 它不仅仅是获取/格式化日期。

有使用日期的本地方法

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

如果您只想要时间字符串,您可以使用此表达式(使用简单的 RegEx):

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

它将显示月、日、年中的日期

对于我的实例,我将它用作全局,然后调用它来检查运行时间。

以下来自我的 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!");
}

要在 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

参考其他函数来满足您的自定义日期要求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM