最近创建
// 修复版:使用当前 Dataview 的标准 API
const timeframe = 7; // 查询最近 N 天的文件(可修改)
const fileLimit = 50; // 最大显示数量
// 获取当前时间并计算截止日期
const now = new Date();
const cutoff = new Date(now.getTime() - (timeframe * 24 * 60 * 60 * 1000));
// 获取符合条件的所有文件
const files = dv.pages()
.where(p => p.file.ctime && p.file.ctime >= cutoff)
.sort(p => p.file.ctime, 'desc')
.limit(fileLimit);
// 格式化日期函数
function formatDate(dateString) {
const date = new Date(dateString);
return date.toLocaleDateString('zh-CN', {
month: 'short',
day: 'numeric',
weekday: 'short'
}) + ' ' + date.toLocaleTimeString('zh-CN', {
hour: '2-digit',
minute: '2-digit'
});
}
// 显示结果
if (files.length > 0) {
dv.table(
["📄 文件", "🕒 创建时间"],
files.map(p => [
p.file.link,
formatDate(p.file.ctime)
])
);
} else {
dv.paragraph(`**没有找到最近 ${timeframe} 天创建的文件**`);
}
// 可选:添加日期筛选控件(点击可切换时间范围)
dv.el('div', `时间范围:
<a href="javascript:updateDays(7)">最近7天</a> |
<a href="javascript:updateDays(30)">最近30天</a>
`);
function updateDays(days) {
const codeBlock = dv.current().file.embeds.find(e => e.type === 'code');
if (codeBlock) {
const newCode = codeBlock.text.replace(/timeframe = \d+/, `timeframe = ${days}`);
dv.app.vault.modify(codeBlock.file, newCode);
}
}
最近修改
// 最近修改的文件 - DataviewJS
const timeframe = 7; // 查询最近 N 天修改的文件(默认7天)
const fileLimit = 30; // 最大显示数量
const showFolder = true; // 是否显示文件所在文件夹
// 计算截止日期
const now = new Date();
const cutoff = new Date(now.getTime() - (timeframe * 24 * 60 * 60 * 1000));
// 获取所有符合条件的文件
const files = dv.pages()
.filter(p => p.file.mtime && p.file.mtime >= cutoff)
.sort(p => p.file.mtime, 'desc')
.limit(fileLimit);
// 格式化日期函数(中文格式)
function formatDate(dateString) {
const date = new Date(dateString);
const options = {
month: 'short',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false
};
return date.toLocaleDateString('zh-CN', options) ;
}
// 获取文件所在文件夹
function getFolder(path) {
return path.split('/').slice(0, -1).join('/') || '/';
}
// 显示结果
if (files.length > 0) {
// 构建表格列
const headers = ["📄 文件", "⏰ 最后修改时间"];
if (showFolder) headers.splice(1, 0, "📁 文件夹");
// 构建表格数据
dv.table(
headers,
files.map(p => {
const row = [
p.file.link,
formatDate(p.file.mtime)
];
if (showFolder) row.splice(1, 0, getFolder(p.file.path));
return row;
})
);
} else {
dv.paragraph(`**⚠️ 没有找到最近 ${timeframe} 天修改的文件**`);
}