Millis() / Unsigned long subtraction not working

Maybe you meant a few minutes?
When you know how it works internally and everything is clear!!!

uint32_t oldm;
uint32_t old_millis = 0xFFFFFF000;
uint64_t my_time = 0xFFFFFF000;

void setup() {
  Serial.begin(115200);
  delay(3000);
  oldm = millis();
}

void loop() {
  if (millis() - oldm >= 1000) {
    old_millis += 1000;
    my_time += 1000;
    Serial.print("old_millis = ");
    Serial.print(old_millis, HEX);
    Serial.print(" -*- ");
    Serial.print("my_time = ");
    Serial.println(my_time, HEX);
  }
  delay(1021);
}

OUTPUT:

09:07:50.366 -> old_millis = FFFFF3E8 -*- my_time = FFFFFF3E8
09:07:51.402 -> old_millis = FFFFF7D0 -*- my_time = FFFFFF7D0
09:07:52.403 -> old_millis = FFFFFBB8 -*- my_time = FFFFFFBB8
09:07:53.451 -> old_millis = FFFFFFA0 -*- my_time = FFFFFFFA0
09:07:54.426 -> old_millis = 388 -*- my_time = 1000000388
09:07:55.489 -> old_millis = 770 -*- my_time = 1000000770
09:07:56.484 -> old_millis = B58 -*- my_time = 1000000B58
09:07:57.510 -> old_millis = F40 -*- my_time = 1000000F40
09:07:58.537 -> old_millis = 1328 -*- my_time = 1000001328
09:07:59.541 -> old_millis = 1710 -*- my_time = 1000001710