Is there any functionality in Emacs Lisp that behaves similar to PHP's strtotime function? (Actually AFAIK it implements relative items of the GNU date input formats.)
In PHP I can write
echo strtotime("+2 months"); //1258891352
echo strtotime("-3 months +2 weeks"); //1246952239
which return the corresponding UNIX timestamps.
While not exactly what you're asking for, this may be of use.  There's a command 'org-schedule in the package org-mode that has a really nice interface to choosing dates.  The specific command that does it is 'org-read-date, which understands many ways of representing the date, including:
 +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.
If you're looking for an interactive way to specify dates with that handy syntactic sugar, that routine should fit the bill nicely.  If you're looking for a programmatic solution, it looks as though the above command calls 'org-read-date-analyze to do the leg work.  Note: its usage is a little obscure (two of its arguments are never defined...), so if you can't figure it out directly, it might be worth sending mail to the org mailing list.
(defun string-to-time (date)
  (shell-command-to-string (format "date --date='%s' +%%s" date)))
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With