eval() is not necessary. This will work fine:
var date = new Date(parseInt(jsonDate.substr(6)));
substr() function takes out the
/Date( part, and the
parseInt() function gets the integer and ignores the
)/ at the end. The resulting number is passed into the
I have intentionally left out the radix (the 2nd argument to
parseInt); see my comment below.
Also, I completely agree with Rory's comment: ISO-8601 dates are preferred over this old format - so this format generally shouldn't be used for new development.
For ISO-8601 formatted JSON dates, just pass the string into the
var date = new Date(jsonDate); //no ugly parsing needed; full timezone support