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

Angular中如何获取单独的年、月、日?使用new Date()未达预期

解决Angular中获取仅含年、月、日的日期问题

嘿,这个问题我熟!在Angular里想要只获取年、月、日,有两种很实用的方法,我给你详细讲讲:

方法一:原生JavaScript手动提取

直接通过Date对象的方法提取年、月、日,再拼接成你需要的格式:

const today = new Date();
// 获取年份
const year = today.getFullYear();
// 获取月份(注意:月份是0索引,所以要+1,再用padStart补零成两位)
const month = String(today.getMonth() + 1).padStart(2, '0');
// 获取日期,同样补零保证两位格式
const day = String(today.getDate()).padStart(2, '0');

// 拼接成你需要的格式,比如YYYY-MM-DD
const dateOnly = `${year}-${month}-${day}`;
console.log(dateOnly); // 输出示例:"2024-05-20"

小提示:如果不需要补零,直接去掉.padStart(2, '0')就行,比如月份会显示成5而不是05。

方法二:用Angular内置的DatePipe(推荐)

Angular自带了DatePipe,专门用来格式化日期,在Angular项目里用这个更规范,也更灵活:

步骤1:确保模块导入了CommonModule

DatePipe属于@angular/common,所以要在你的组件所属的模块(比如AppModule或者自定义的共享模块)里导入CommonModule:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
// 其他导入...

@NgModule({
  imports: [CommonModule],
  // 其他配置...
})
export class YourModule { }

方式A:在组件类中使用

先注入DatePipe,再调用transform方法格式化日期:

import { Component } from '@angular/core';
import { DatePipe } from '@angular/common';

@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.component.html',
  providers: [DatePipe] // 注入DatePipe
})
export class YourComponent {
  dateOnly: string;

  constructor(private datePipe: DatePipe) {
    const today = new Date();
    // 传入日期和格式字符串,这里用'yyyy-MM-dd'表示年-月-日
    this.dateOnly = this.datePipe.transform(today, 'yyyy-MM-dd') || '';
    // 你也可以换成其他格式,比如'MM/dd/yyyy'或者'yyyy年MM月dd日'
  }
}

方式B:直接在模板中使用管道

更简单的方式是在模板里直接用| date管道:

<!-- 组件模板里的代码 -->
<p>今天的日期:{{ today | date:'yyyy-MM-dd' }}</p>

然后在组件类里定义today变量:

// 组件类中
today = new Date();

这样就能轻松得到仅含年、月、日的日期啦!

内容的提问来源于stack exchange,提问作者Abdullah Zaher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:03:39