DirectPHP uses standard PHP eval() statement. If it runs in PHP, it should also run in DirectPHP.
For your case, it will work if you use the following:
$date = new DateTime('now', new DateTimeZone('America/Los_Angeles'));
Try to create a standalone .PHP file and put the following line:
echo new DateTime('now', new DateTimeZone('America/Los_Angeles'))->format('Y-m-d');
It will give the same error message "Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in /home4/tarotray/public_html/web/plugins/content/DirectPHP/DirectPHP.php(58) : eval()'d code on line 1"
In PHP, when you use "new" to create a new object, usually we have to put the newly created object into a variable before we can call its method.
For DirectPHP, I usually try the commands in a standalone .PHP file first, make sure it works before I transfer them into DirectPHP.