diff --git a/core/dbobject.class.php b/core/dbobject.class.php index 19a64c5ba..ea70321cf 100644 --- a/core/dbobject.class.php +++ b/core/dbobject.class.php @@ -4229,7 +4229,7 @@ abstract class DBObject implements iDisplay } } $oDate->modify($sModifier); - $this->Set($sAttCode, $oDate->format('Y-m-d H:i:s')); + $this->Set($sAttCode, $oDate->getTimestamp()); } /** diff --git a/tests/php-unit-tests/unitary-tests/core/DBObjectTest.php b/tests/php-unit-tests/unitary-tests/core/DBObjectTest.php index 6cf5b2604..5f1fe127e 100644 --- a/tests/php-unit-tests/unitary-tests/core/DBObjectTest.php +++ b/tests/php-unit-tests/unitary-tests/core/DBObjectTest.php @@ -539,4 +539,31 @@ class DBObjectTest extends ItopDataTestCase return $oUserWithAllowedOrgs; } + + + /** + * @covers DBObject::SetComputedDate + * @return void + */ + public function testSetComputedDateOnAttributeDate() + { + $oObject = MetaModel::NewObject(\CustomerContract::class, ['name' => 'Test contract', 'org_id' => '3', 'provider_id' => '2']); + $oObject->Set('start_date', time()); + $oObject->SetComputedDate('end_date', "+2 weeks", 'start_date'); + $this->assertTrue(true, 'No fatal error on computing date'); + } + + /** + * @covers DBObject::SetComputedDate + * @return void + */ + public function testSetComputedDateOnAttributeDateTime() + { + $oObject = MetaModel::NewObject(\WorkOrder::class, ['name' => 'Test workorder', 'description' => 'Toto']); + $oObject->Set('start_date', '2024-01-01 09:45:00'); + $oObject->SetComputedDate('end_date', "+2 weeks", 'start_date'); + $this->assertTrue(true, 'No fatal error on computing date'); + $this->assertEquals("2024-01-15 09:45:00", $oObject->Get('end_date'), 'SetComputedDate +2 weeks on a WorkOrder DateTimeAttribute'); + + } }