Most likely it is made like this
So you need 3 PNP transistors to source current, and a shift register like TPIC6B595 to sink current from the cathode resistors.
Setup the data for digit 1, turn on its PNP. After 8mS, turn it off.
Setup the data for digit 2, turn on its PNP. After 8mS, turn it off.
Setup the data for digit 3, turn on its PNP. After 8mS, turn it off.
Repeat
Use millis capture & subtraction to see when time has elapsed:
current_time = millis();
if ((current_time - previous_time) >= interval) {
previous_time = previous_time + interval; // set up for next pass
keep track of which digit in array
digitalWrite(pnpArray[pnpPin]; // pnpPin[2,3,4] example for the 3 pins being used
use an array to send out the font data
use SPI to send data to the shift register:
digitalWrite(shift_reg_latch, LOW);
SPI.transfer(fontArray[digit_to_send]);
digitalWrite(shift_reg_latch, HIGH);
}