4

Emacs Lisp 中是否有任何行为类似于PHP 的strtotime功能?(实际上 AFAIK 它实现了 GNU 日期输入格式的相关项目。)

在 PHP 我可以写

echo strtotime("+2 months"); //1258891352
echo strtotime("-3 months +2 weeks"); //1246952239

它返回相应的 UNIX 时间戳。

4

3 回答 3

4

虽然不完全符合您的要求,但这可能有用。org-mode'org-schedule包中有一个命令,它有一个非常好的界面来选择日期。执行此操作的具体命令是,它了解表示日期的多种方式,包括:'org-read-date

 +0            --> today
 .             --> today
 +4d           --> four days from today
 +4            --> same as above
 +2w           --> two weeks from today
 ++5           --> five days from default date
 +2tue         --> second Tuesday from now.

如果您正在寻找一种交互式方式来使用方便的语法糖来指定日期,那么该例程应该非常适合。如果您正在寻找程序化解决方案,看起来好像上面的命令调用'org-read-date-analyze来完成腿部工作。注意:它的用法有点晦涩(它的两个参数从未定义过......),所以如果你不能直接弄清楚,可能值得将邮件发送到org 邮件列表

于 2009-09-22T16:48:35.440 回答
3
(defun string-to-time (date)
  (shell-command-to-string (format "date --date='%s' +%%s" date)))
于 2009-09-23T08:46:19.427 回答
1

我所知道的最接近的内置函数是编码时间。如果你想使用自然语言,你可能不得不写这样的东西:http: //github.com/chaitanyagupta/chronicity

于 2009-09-22T12:21:31.500 回答