The issue may be due to inconsistent time zones. For example, the time zone configured in PHP may be different from the time zone of the Linux OS. ChartDirector follows the OS time zone. The PHP code probably uses the PHP time zone. If there are other components (eg. database), they may have their own time zone configuration too.
No matter what are the time zone configurations, a UNIX timestamp generated by PHP will be always be understood by PHP itself. So one method is to use PHP to determine the time components (yyyy-mm-dd hh:nn:ss), and use these components to set up chartTime. It is like:
If the UNIX timestamp comes from a database, the most reliable method is not to return the UNIX timestamp. Instead, the SQL query can ask the database to return the time components (yyyy, mm, dd, hh, nn, ss) directly, and use them to create chartTime.