nodejs fs.utimes使用什么格式

时间:2014-01-02 04:35:33

标签: javascript node.js

在nodejs中,fs.utimes的参数应以什么格式书写,例如atimemtime

API:fs.utimes(path, atime, mtime, callback)

1 个答案:

答案 0 :(得分:10)

这些参数是JavaScript Date,而不是字符串。

From the docs:

  

请注意,atime,mtime和ctime是Date对象的实例,为了比较这些对象的值,您应该使用适当的方法。对于大多数常规用途,getTime()将返回自1970年1月1日00:00:00 UTC以来经过的毫秒数,并且此整数应足以进行任何比较,但是还有其他方法可用于显示模糊信息。更多详细信息可以在MDN JavaScript Reference页面中找到。

来自source code

fs.utimes = function(path, atime, mtime, callback) {
  callback = makeCallback(callback);
  if (!nullCheck(path, callback)) return;
  binding.utimes(pathModule._makeLong(path),
                 toUnixTimestamp(atime),
                 toUnixTimestamp(mtime),
                 callback);
};


// converts Date or number to a fractional UNIX timestamp
function toUnixTimestamp(time) {
  if (util.isNumber(time)) {
    return time;
  }
  if (util.isDate(time)) {
    // convert to 123.456 UNIX timestamp
    return time.getTime() / 1000;
  }
  throw new Error('Cannot parse time: ' + time);
}

这表明它可以是Javascript Date或Unix Style数字日期。

这条线真的很重要!!! return time.getTime() / 1000;这意味着如果传入一个数字,则传入一个Unix样式编号,其中毫秒数用1 / 1000s表示,这与从Date.getTime()返回的整数不同

See this link on Unix Timestamps