diff --git a/reflex/components/moment/moment.py b/reflex/components/moment/moment.py index da14cf6f6..d11a92c51 100644 --- a/reflex/components/moment/moment.py +++ b/reflex/components/moment/moment.py @@ -79,7 +79,7 @@ class Moment(NoSSRComponent): duration: Var[str] # The date to display (also work if passed as children). - date: Var[Union[str, datetime.datetime, datetime.date]] + date: Var[Union[str, datetime.datetime, datetime.date, datetime.time, datetime.timedelta]] # Shows the duration (elapsed time) between now and the provided datetime. duration_from_now: Var[bool] diff --git a/reflex/utils/serializers.py b/reflex/utils/serializers.py index 93fadd5db..3ca91d75e 100644 --- a/reflex/utils/serializers.py +++ b/reflex/utils/serializers.py @@ -289,14 +289,8 @@ def serialize_datetime(dt: Union[date, datetime, time, timedelta]) -> str: Returns: The serialized datetime. """ - if isinstance(dt, datetime): - return dt.isoformat() - elif isinstance(dt, date): - return dt.isoformat() - elif isinstance(dt, time): - return dt.isoformat() - else: # timedelta - return str(dt) + # Use isoformat for datetime-like objects, str for timedelta + return getattr(dt, 'isoformat', lambda: str(dt))() @serializer(to=str)