如何在 TypeScript 中移除日期中的时间?


在使用 TypeScript 的日期对象时,有时需要仅提取日期并从中移除时间组件。这在用户界面中显示日期或比较日期时非常有用。在本教程中,我们将探讨几种在 TypeScript 中移除日期时间的方法。

语法

const dateWithoutTime = date.toLocaleDateString();
const dateWithoutTime = date.toISOString().split('T')[0];

以上是两种不同的 TypeScript 方法移除日期时间的语法。第一种方法使用 toLocaleDateString() 方法。第二种方法使用 toISOString() 方法。

示例 1:使用 toLocaleDateString() 方法

const date = new Date();
const dateWithoutTime = date.toLocaleDateString();
console.log(dateWithoutTime);

toLocaleDateString() 方法返回一个字符串,该字符串表示 Date 对象在本地时区中的日期部分。它不包含时间部分。默认情况下,它返回格式为“MM/DD/YYYY”(例如,“05/05/2023”)的字符串。

输出

编译后,它将生成与上面相同的 JavaScript 代码。JavaScript 代码将产生以下输出:

5/18/2023

使用此方法的一个好处是它的简单性。可以通过在 Date 对象上调用 toLocaleDateString() 方法轻松检索所需格式的日期。另一个好处是它会自动调整到本地时区,这在处理不同时区的日期时非常有用。

但是,此方法的一个潜在缺点是输出格式取决于用户的区域设置。如果您需要以特定格式显示日期,则可能需要手动格式化字符串。

示例 2:使用 toISOString() 方法

const date = new Date();
const dateWithoutTime = date.toISOString().split('T')[0];
console.log(dateWithoutTime);

toISOString() 方法返回一个字符串,该字符串以 ISO 格式(例如,“YYYY-MM-DDTHH:mm:ss.sssZ”)表示 Date 对象。我们可以使用“T”字符分割此字符串以仅获取日期部分。

var date = new Date();
var dateWithoutTime = date.toISOString().split('T')[0];
console.log(dateWithoutTime);

输出

编译后,它将生成与上面相同的 JavaScript 代码。JavaScript 代码将产生以下输出:

2023-05-18

此方法的一个优点是输出格式是标准化的,并且不依赖于用户的区域设置。这在以特定格式显示日期时非常有用。此外,ISO 格式被广泛认可,并且可以被其他系统轻松解析。

但是,使用此方法的一个潜在缺点是输出字符串包含时区偏移量,这取决于您的用例,可能是也可能不是必需的。

示例 3:使用 setHours() 方法

const date = new Date();
date.setHours(0,0,0,0);
const dateWithoutTime = date.toDateString();
console.log(dateWithoutTime);

setHours() 方法可用于将 Date 对象的时间组件设置为零。这有效地移除了时间组件,只留下日期。然后使用 toDateString() 方法将 Date 对象转换为格式为“ddd MMM DD YYYY”(例如,“Thu May 05 2023”)的字符串。

var date = new Date();
date.setHours(0, 0, 0, 0);
var dateWithoutTime = date.toDateString();
console.log(dateWithoutTime);

输出

编译后,它将生成与上面相同的 JavaScript 代码。JavaScript 代码将产生以下输出:

Thu May 18 2023

此方法的一个优点是它比前两种方法提供了更大的灵活性。使用 setHours(),您可以将任何时间组件设置为零,而不仅仅是小时,如果您还需要移除分钟或秒,这将非常有用。此外,toDateString() 方法返回一个标准化格式,该格式不依赖于用户的区域设置。

但是,此方法的一个潜在缺点是使用 setHours() 修改 Date 对象会更改原始对象。如果您需要保持原始 Date 对象不变,则必须使用修改后的值创建一个新的 Date 对象。

结论

总之,在 TypeScript 中有多种方法可以从 Date 对象中移除时间。toLocaleDateString() 方法是最简单和最直接的方法,但其他方法在某些情况下可能很有用。根据您的具体用例,您可能需要考虑输出格式、时区或是否需要修改原始 Date 对象。通过了解每种方法的优缺点,您可以为您的特定情况选择最佳方法。

更新于:2023年9月4日

18K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告