Try setting the locale in PHP for the current application in code.
- run in MYSQL : SELECT @@system_time_zone;
- Add this to the first line in PHP code, date_default_timezone_set(‘US/Eastern’);
- Replace ‘US/Eastern’ in Step 2, with the timezone value you got from Step 1.
- In codeigniter, you can place Step 2 line in config.php
- If there are errors, use the right timezones here:
- https://www.php.net/manual/en/timezones.america.php
- date_default_timezone_set(‘America/New_York’); used for aspa and webhooks.
function getCurrentDatabaseTime() { $ci =& get_instance(); $ci->load->database(); $query = $ci->db->query('SELECT NOW() as `current_time`;'); // if exist $results = array(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { return $row; } } return FALSE; } function getCurrentDatabaseTimezone() { //SELECT @@system_time_zone $ci =& get_instance(); $ci->load->database(); $query = $ci->db->query('SELECT @@system_time_zone as `current_time_zone`;'); // if exist $results = array(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { return $row; } } return FALSE; } function getPacificTime($timeString) { // Right now it's about four minutes before 1 PM, PST. $pst = new DateTimeZone('America/Los_Angeles'); //$three_hours_ago = new DateTime('-3 hours', $pst); // first argument uses strtotime parsing $now = new DateTime($timeString, $pst); // first argument uses strtotime parsing //echo $three_hours_ago->format('Y-m-d H:i:s'); // "2010-06-15 09:56:36" return $now->format('Y-m-d H:i:s'); } // inside a controller , index() public function index() { $this->load->helper('common'); $current_timezone_array = getCurrentDatabaseTimezone(); $current_time_array = getCurrentDatabaseTime(); echo 'Current Database Timezone: '.$current_timezone_array['current_time_zone']; echo '<hr>'; echo 'Current Database Time: '.$current_time_array['current_time']; echo '<hr>'; echo 'Current PHP Server Time: '.date('Y-m-d H:i:s'); echo '<hr>'; echo 'Current Pacific Time: '.getPacificTime('now'); if ($current_time_array['current_time'] != date('Y-m-d H:i:s')) echo '<hr><font color=red>Possible time issues! Database time and server time mismatch!</font><hr>'; else echo '<hr><font color=green>Good! Database time and server time matches!</font><hr>'; // application should have mysql time and server time matching for things to work properly. // see: https://apps.badjoerichards.com/apps/developerhack/deal-time-mismtach-mysql-records-datey-m-d-php-not-match-mysqls-server-time/ }