I have got some issues with timestamp field values.
I'm using Codeigniter 2.1.3, with PHP 5. Issue is that when tries to enter a empty(or NULL
) data using $this->db->insert()
, DB shows the value as 0000-00-00 00:00:00
.
<?php
$activities = array(
'activity_title' => $task['title'],
'note' => $task['description'],
'duration' => "00:15",
'created_date' => mysql_datetime(),
'scheduled_date' => $task['schedule_time'], // DB field type: 'timestamp' with 'NULL' as default
'owner_id' => $owner_id,
'assigned_to' => $assigned_to,
);
if (($assigned_to != '') && (isset($task['schedule_time'])) && ($task['schedule_time'] != '')) {
$userdtl = _DB_get_record($this->tables['users'], array('id' => $assigned_to));
date_default_timezone_set('UTC');
$originalTime = new DateTime($task['schedule_time']);
// Convert to User TimeZone.
$originalTime->setTimeZone(new DateTimeZone($userdtl['timezone']));
$activities['scheduled_date'] = $originalTime->format('Y-m-d H:i:s');
}
if (($activities['scheduled_date'] == '0000-00-00 00:00:00' || $activities['scheduled_date'] == '' || $activities['scheduled_date'] == 'NULL')) {
$activities['scheduled_date'] = NULL;
file_put_contents('./log.txt', print_r($activities['scheduled_date'], true), FILE_APPEND); // getting empty
}
// Insertion
$this->db->insert($this->tables['activities'], $activities);
// On print_r($this->db->last_query());
//INSERT INTO `activities` (`activity_title``, `note`, `duration`, `created_date`, `scheduled_date`, `owner_id`, `assigned_to`) VALUES ('Email 3', '<div>Email 3</div>', '00:15', '2017-07-21 05:55:52', NULL, '633', '633')
?>
When I check DB for the value, it show 0000-00-00 00:00:00
. It should be NULL, right?
I have directly checked same insertion query on DB & it worked fine.
I do not know more about server details & its workin on UTC timezone.
Do you have any idea on this? Please help...