You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Luxon DateTime设置为当日起始时间(重置时间部分)

Luxon 重置DateTime时间部分到当日起始的内置方法

Luxon 原生提供了对应的能力,不需要手动操作原生Date对象实现,你可以直接使用实例上的startOf()方法。

  • 传入'day'作为参数时,就会直接返回当前DateTime实例对应日期的当日零点(起始时间),自动适配实例本身配置的时区,不会出现跨时区偏移问题。

简化后的实现代码

import { DateTime } from 'luxon';

// 获取当日零点
export const today = () => DateTime.now().startOf('day');

// 将任意DateTime重置为对应日期的起始时间
export const getDateOnly = (dt: DateTime = DateTime.now()) => dt.startOf('day');

补充说明:startOf方法支持传入多个时间粒度参数,除了'day'之外,还支持'hour'、'week'、'month'、'year'等,调用后会返回对应时间粒度起始点的DateTime实例,覆盖绝大多数时间截断的使用场景。

你当前通过原生Date对象拼接年月日的写法存在潜在问题:如果Luxon实例配置了非本地时区,转成JS Date再重新构造DateTime的过程中,很容易因为时区基准不一致出现日期偏移,直接用内置startOf方法可以规避这个问题。

内容的提问来源于stack exchange,提问作者jenson-button-event

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:09:25