Israel has announced a unilateral 12-hour ceasefire in Gaza starting on Saturday morning, a US official said.