Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何返回process.uptime();从毫秒到人类可读的格式?_Javascript_Node.js_Discord - Fatal编程技术网

Javascript 如何返回process.uptime();从毫秒到人类可读的格式?

Javascript 如何返回process.uptime();从毫秒到人类可读的格式?,javascript,node.js,discord,Javascript,Node.js,Discord,我在制造一个不和机器人。我试过这个- bot.on('message', message => { if (message.content === '!uptime') { var time = process.uptime(); function dhm(ms) { days = Math.floor(ms / (24 * 60 * 60 * 1000)); daysms = ms % (24 * 60 * 60 * 1000);

我在制造一个不和机器人。我试过这个-

bot.on('message', message => {
if (message.content === '!uptime') {
    var time = process.uptime();

    function dhm(ms) {
        days = Math.floor(ms / (24 * 60 * 60 * 1000));
        daysms = ms % (24 * 60 * 60 * 1000);
        hours = Math.floor((daysms) / (60 * 60 * 1000));
        hoursms = ms % (60 * 60 * 1000);
        minutes = Math.floor((hoursms) / (60 * 1000));
        minutesms = ms % (60 * 1000);
        sec = Math.floor((minutesms) / (1000));
        return days + ":" + hours + ":" + minutes + ":" + sec;
    }
    message.channel.sendMessage(dhm(time));
   }
});
在聊天中,返回-
0:0:0

// Uptime
bot.on('message', message => {
 if (message.content === '!uptime') {
    var time = process.uptime();
function dhm(t){
var cd = 24 * 60 * 60 * 1000,
    ch = 60 * 60 * 1000,
    d = Math.floor(t / cd),
    h = Math.floor( (t - d * cd) / ch),
    m = Math.round( (t - d * cd - h * ch) / 60000),
    pad = function(n){ return n < 10 ? '0' + n : n; };
  if( m === 60 ){
h++;
m = 0;
  }
  if( h === 24 ){
d++;
h = 0;
  }
  return [d, pad(h), pad(m)].join(':');
}
  message.channel.sendMessage(dhm(time)); 
 }});
//正常运行时间
bot.on('message',message=>{
如果(message.content=='!正常运行时间'){
var time=process.uptime();
功能dhm(t){
变量cd=24*60*60*1000,
ch=60*60*1000,
d=数学楼层(t/cd),
h=数学楼层((t-d*cd)/ch),
m=数学四舍五入((t-d*cd-h*ch)/60000),
pad=函数(n){返回n<10?'0'+n:n;};
如果(m==60){
h++;
m=0;
}
如果(h==24){
d++;
h=0;
}
返回[d,pad(h),pad(m)]。连接(':');
}
message.channel.sendMessage(dhm(time));
}});
这将返回
0:00:00


我正在尝试转换
process.uptime()的值分为天、小时、分钟和秒。任何帮助都将不胜感激。

顺便说一句,给出的第一条评论并非100%正确。根据最新的文档,返回值包括几分之一秒。应使用Math.floor()来获取整秒。因此,要以毫秒为单位获得正常运行时间,
process.uptime()
值需要乘以
1000
。下面的代码示例可能会执行您想要的操作。由于示例使用了不同的格式,您可能希望将代码调整为您喜欢的格式,该格式应该是直截了当的

您可以在上试用此代码的变体


FWIW文档说它以秒为单位返回正常运行时间,而不是以毫秒为单位。console log process.uptime()可以查看您得到的结果
var uptime = process.uptime();
console.log("Uptime raw:", uptime)
const date = new Date(uptime*1000);
const days = date.getUTCDate() - 1,
      hours = date.getUTCHours(),
      minutes = date.getUTCMinutes(),
      seconds = date.getUTCSeconds(),
      milliseconds = date.getUTCMilliseconds();


let segments = [];

if (days > 0) segments.push(days + ' day' + ((days == 1) ? '' : 's'));
if (hours > 0) segments.push(hours + ' hour' + ((hours == 1) ? '' : 's'));
if (minutes > 0) segments.push(minutes + ' minute' + ((minutes == 1) ? '' : 's'));
if (seconds > 0) segments.push(seconds + ' second' + ((seconds == 1) ? '' : 's'));
if (milliseconds > 0) segments.push(milliseconds + ' millisecond' + ((seconds == 1) ? '' : 's'));
const dateString = segments.join(', ');

console.log("Uptime: " + dateString);