I really wouldn't implement this as a try/catch as DateTime is already slow as an object itself, see talks on PHP mailing lists so, while a micro-optimization, I don't think it's a nice thing to do for the users. That's why I've did it in the HeaderBag.