在nodejs中,fs.utimes
的参数应以什么格式书写,例如atime
,mtime
。
API:fs.utimes(path, atime, mtime, callback)
答案 0 :(得分:10)
这些参数是JavaScript Date
,而不是字符串。
请注意,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()
返回的整数不同