At least 10 people have been killed and dozens more injured in an explosion in the Philippines.

A military spokesman said the explosion happened at the night market in the president's home city of Davao, outside a high-end hotel.

President Rodrigo Duterte was in the city at the time but was safe and at a police station following the blast, his son Paolo Duterte - Davao's vice-mayor - said.

Presidential spokesman Ernesto Abella told CNN Philippines that the cause of the explosion was unknown.