exactly what I was going to say. I'm always impressed when strtotime correctly parses whatever crazy way to express a date that comes to mind. i.e. "tomorrow - 3 hours"
This is really nice date detection based on semantics. The one thing I'd add is the ability to use words in lieu of numbers. For example, "in an hour" doesn't work, but "in 1 hour" does. Or, "in two months" doesn't work, but "in 2 months" does. Clearly the logic is there, but I think just adding some basic (0-99) word recognition in there would make it that much better.
And if you really want to get crazy, you could add some support for "fortnight"...if you're bored.
thanks endersshadow, I'm thinking about adding stuff like that, certainly "a/an" => 1. I was also looking at doing "two" => 2, "ten" => 10, etc. I'd include it as a separate dependency if it's not too big/slow.