Q:我希望在Obsibian中,每次打开这篇笔记时,自动计算并显示从指定日期到当前日期的天数差,显示格式 工龄:xx年xx月xx日(xxxx天),入职时间格式“入职时间:xxxx/xx/x” 或者“xxxx-xx-xx”,并且当搜索到离职时间时,截止时间计算到离职时。请编写代码,谢谢!
- 安装Dataview插件:
- 打开Obsidian应用程序,点击左侧的设置按钮(齿轮图标)。
- 在“社区插件”中,点击“浏览”。
- 搜索“Dataview”插件,然后点击“安装”。
- 安装完成后,点击“启用”来启用插件。
- 配置Dataview插件:
- 在“设置”中,找到“Dataview”插件并点击进入其配置页面。
- 确保 Dataview 插件已启。
- 在 Dataview 设置中启用“Enable JavaScript Queries”。
- 创建笔记:
- 打开Obsidian,创建一个新的笔记文件,例如“TimeDifference.md”。
- 编辑笔记内容:
- 在笔记中使用Dataview的
dataviewjs
功能来动态计算时间差。以下是一个示例:
- 在笔记中使用Dataview的
从某个日期到今天已经过去了:
```dataviewjs
const targetDate = dv.date("2023-05-01"); // 输入目标日期
const currentDate = dv.date("today");
const differenceInDays = currentDate.diff(targetDate, "days").days;
dv.span(`从 ${targetDate.toISODate()} 到今天已经过去了 ${Math.floor(differenceInDays)} 天。`);
- 目标日期设置: const targetDate = dv.date("2023-05-01"); // 输入目标日期
将 "2023-05-01"
替换为您要计算的日期。
-
当前日期和时间差计算:
const currentDate = dv.date("today"); const differenceInDays = currentDate.diff(targetDate, "days").days;
-
显示结果:
dv.span(`从 ${targetDate.toISODate()} 到今天已经过去了 ${Math.floor(differenceInDays)} 天。`);
- 保存并查看笔记
- 保存笔记文件后,每次打开这篇笔记时,Dataview插件会自动计算并显示从指定日期到当前日期的天数差。
=(( number(dateformat(date(today), "X")) - number(dateformat(date(2024-01-01), "X")) ) / 86400 )
=(date(today)-date(2024-01-01)).day
=(date(today)-date(2024-01-01))