Rerun dont refresh time input value

After rerun, the session state values are refreshed, but on the screen, the st.session_state.StartTime and st.session_state.EndTime values are stil the same like before. So I have the correct values in the background, but the input is not refreshed on the screen. the code:
# Buttons for preset date ranges
with col1:
if st.button(‘Today’):
st.session_state.StartDate = datetime.today().date()
st.session_state.EndDate = datetime.today().date()
st.session_state.StartTime = time(0, 0)
st.session_state.EndTime = time(23, 59)
st.rerun()

with col2:
    if st.button('Yesterday'):
        yesterday = datetime.today() - timedelta(days=1)
        st.session_state.StartDate = yesterday.date()
        st.session_state.EndDate = yesterday.date()
        st.session_state.StartTime = time(0, 0)
        st.session_state.EndTime = time(23, 59)
        st.rerun()

with col3:
    if st.button('This Week'):
        start, end = get_current_week()
        st.session_state.StartDate = start.date()
        st.session_state.EndDate = end.date()
        st.session_state.StartTime = time(0, 0)
        st.session_state.EndTime = time(23, 59)
        st.rerun()

with col4:
    if st.button('Previous Week'):
        start, end = get_previous_week()
        st.session_state.StartDate = start.date()
        st.session_state.EndDate = end.date()
        st.session_state.StartTime = time(0, 0)
        st.session_state.EndTime = time(23, 59)
        st.rerun()

col1, col2, col3 = st.columns([0.2,0.2,0.6])
    
# Date and time inputs
with col1:
    st.session_state.StartDate = st.date_input('Start Date', st.session_state.StartDate)
    st.session_state.EndDate = st.date_input('End Date', st.session_state.EndDate)

with col2: 
    cur_val=st.session_state.StartTime   
    st.session_state.StartTime = st.time_input('Start Time', st.session_state.StartTime)
    st.session_state.EndTime = st.time_input('End Time', st.session_state.EndTime)

find solution.

import streamlit as st
from datetime import time

Initialize date and time variables

start_time = time(0,0)
end_time = time(23,59)

if “start_time” not in st.session_state:
st.session_state.a = start_time

if “end_time” not in st.session_state:
st.session_state.a = start_time

Buttons for preset date ranges

if st.button(‘Reset time’):
st.session_state.start_time = time(0,0)
st.session_state.end_time = time(23,59)

start_time = st.time_input(“Start Time:”, key=“start_time”)
end_time = st.time_input(“Start Time:”, key=“end_time”)

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.