diff --git a/menu/menu.c b/menu/menu.c
index b750d73620..9b5f773ac7 100644
--- a/menu/menu.c
+++ b/menu/menu.c
@@ -378,6 +378,7 @@ void menu_apply_deferred_settings(void)
 int menu_iterate(retro_input_t input,
       retro_input_t old_input, retro_input_t trigger_input)
 {
+   static retro_time_t last_clock_update = 0;
    int32_t ret     = 0;
    unsigned action = menu_input_frame(input, trigger_input);
 
@@ -391,6 +392,12 @@ int menu_iterate(retro_input_t input,
       menu->dt = IDEAL_DT / 4;
    menu->old_time = menu->cur_time;
 
+   if (menu->cur_time - last_clock_update > 1000000 && g_settings.menu.timedate_enable)
+   {
+      g_runloop.frames.video.current.menu.label.is_updated = true;
+      last_clock_update = menu->cur_time;
+   }
+
    if (driver.menu_ctx && driver.menu_ctx->entry_iterate)
       ret = driver.menu_ctx->entry_iterate(action);