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.