The time() function works fine, but returns the actual current time. This makes it more difficult to test things like event triggers, both manually and with unit tests. Many time() calls should use PhabricatorTime::getNow() instead, which can return an alternate "current time" which comes from the CLI or a unit test.
Moving code to use PhabricatorTime::getNow() will generally produce more consistent, predictable results for commands like bin/trigger fire --now '2012-08-15 13:14:15'.
One issue with doing this is that getNow() never advances when faked -- the current time is frozen at the second which was faked. This is desirable/necessary for many test situations, but can make loops which rely on time() run forever. We'll need to introduce alternate primitives to deal with these cases.
The benefit of this infrastructure improvement is very small overall, but triggers and Calendar will likely benefit from easier development and testing in the long run as we make progress against it.