Emacs Lisp 中是否有任何行为类似于PHP 的strtotime
功能?(实际上 AFAIK 它实现了 GNU 日期输入格式的相关项目。)
在 PHP 我可以写
echo strtotime("+2 months"); //1258891352
echo strtotime("-3 months +2 weeks"); //1246952239
它返回相应的 UNIX 时间戳。
Emacs Lisp 中是否有任何行为类似于PHP 的strtotime
功能?(实际上 AFAIK 它实现了 GNU 日期输入格式的相关项目。)
在 PHP 我可以写
echo strtotime("+2 months"); //1258891352
echo strtotime("-3 months +2 weeks"); //1246952239
它返回相应的 UNIX 时间戳。
虽然不完全符合您的要求,但这可能有用。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 邮件列表。
(defun string-to-time (date)
(shell-command-to-string (format "date --date='%s' +%%s" date)))
我所知道的最接近的内置函数是编码时间。如果你想使用自然语言,你可能不得不写这样的东西:http: //github.com/chaitanyagupta/chronicity