@luoxiao123/angular-material-date-time-range-picker 21.0.0 → 21.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -62,17 +62,35 @@ yarn add @luoxiao123/angular-material-date-time-range-picker
|
|
|
62
62
|
```typescript
|
|
63
63
|
import { Component } from '@angular/core';
|
|
64
64
|
import { DatePickerComponent, DateTimePickerValue } from '@luoxiao123/angular-material-date-time-range-picker';
|
|
65
|
+
import { provideDateFnsAdapter } from '@angular/material-date-fns-adapter';
|
|
66
|
+
import { MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
67
|
+
import { zhCN } from 'date-fns/locale';
|
|
68
|
+
|
|
69
|
+
export const MY_DATE_FORMATS = {
|
|
70
|
+
parse: {
|
|
71
|
+
dateInput: 'yyyy-MM-dd',
|
|
72
|
+
},
|
|
73
|
+
display: {
|
|
74
|
+
dateInput: 'yyyy-MM-dd',
|
|
75
|
+
monthYearLabel: 'MMM yyyy',
|
|
76
|
+
dateA11yLabel: 'PP',
|
|
77
|
+
monthYearA11yLabel: 'MMMM yyyy',
|
|
78
|
+
},
|
|
79
|
+
};
|
|
65
80
|
|
|
66
81
|
@Component({
|
|
67
82
|
selector: 'app-root',
|
|
68
83
|
standalone: true,
|
|
69
84
|
imports: [DatePickerComponent],
|
|
85
|
+
providers: [
|
|
86
|
+
provideDateFnsAdapter(),
|
|
87
|
+
{ provide: MAT_DATE_LOCALE, useValue: zhCN },
|
|
88
|
+
{ provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }
|
|
89
|
+
],
|
|
70
90
|
template: `
|
|
71
91
|
<date-time-picker
|
|
72
92
|
[(ngModel)]="selectedRange"
|
|
73
93
|
[required]="true"
|
|
74
|
-
[dateFormat]="'yyyy年M月d日 HH:mm'"
|
|
75
|
-
[optionalFeatures]="true"
|
|
76
94
|
(selectionChange)="onRangeSelected($event)"
|
|
77
95
|
/>
|
|
78
96
|
`,
|
|
@@ -98,7 +116,6 @@ export class AppComponent {
|
|
|
98
116
|
matInput
|
|
99
117
|
[(ngModel)]="selectedRange"
|
|
100
118
|
[required]="true"
|
|
101
|
-
[dateFormat]="'yyyy-MM-dd HH:mm'"
|
|
102
119
|
/>
|
|
103
120
|
@if (formControl.hasError('required')) {
|
|
104
121
|
<mat-error>此字段为必填</mat-error>
|
|
@@ -125,7 +142,6 @@ export class AppComponent {
|
|
|
125
142
|
// 模板
|
|
126
143
|
<date-time-picker
|
|
127
144
|
[formControl]="rangeControl"
|
|
128
|
-
[dateFormat]="'yyyy-MM-dd HH:mm'"
|
|
129
145
|
/>
|
|
130
146
|
```
|
|
131
147
|
|
|
@@ -167,9 +183,7 @@ export class DateRangeModule {}
|
|
|
167
183
|
| `ngModel` / `formControl` | `DateTimePickerValue \| null` | - | 选中的日期时间范围(支持双向绑定) |
|
|
168
184
|
| `required` | `boolean` | `false` | 是否为必填项 |
|
|
169
185
|
| `disabled` | `boolean` | `false` | 是否禁用组件 |
|
|
170
|
-
| `dateFormat` | `string` | `'yyyy年M月d日 HH:mm'` | 日期显示格式(DatePipe 格式) |
|
|
171
186
|
| `valueFormat` | `string` | `'yyyy-MM-dd HH:mm:ss'` | 值的输出格式(DatePipe 格式) |
|
|
172
|
-
| `optionalFeatures` | `boolean` | `true` | 是否启用星期选择和小时范围选择 |
|
|
173
187
|
| `future` | `boolean` | `false` | 是否允许选择未来日期 |
|
|
174
188
|
|
|
175
189
|
### 输出事件
|
|
@@ -204,30 +218,42 @@ export class DateRangeModule {}
|
|
|
204
218
|
[(ngModel)]="selectedRange"
|
|
205
219
|
[required]="true"
|
|
206
220
|
[disabled]="isLoading"
|
|
207
|
-
[optionalFeatures]="true"
|
|
208
221
|
[future]="false"
|
|
209
|
-
[dateFormat]="'yyyy-MM-dd HH:mm'"
|
|
210
222
|
(selectionChange)="onRangeSelected($event)"
|
|
211
223
|
/>
|
|
212
224
|
```
|
|
213
225
|
|
|
214
226
|
### 自定义日期格式
|
|
215
227
|
|
|
216
|
-
|
|
217
|
-
// 中文格式
|
|
218
|
-
[dateFormat]="'yyyy年M月d日 HH:mm'"
|
|
219
|
-
|
|
220
|
-
// 英文格式
|
|
221
|
-
[dateFormat]="'MMM d, yyyy HH:mm'"
|
|
228
|
+
组件使用 Angular Material 的 `DateAdapter` 和 `MAT_DATE_FORMATS` 进行日期格式化。您可以在应用或组件级别提供自定义的适配器和格式。
|
|
222
229
|
|
|
223
|
-
|
|
224
|
-
[dateFormat]="'yyyy-MM-dd HH:mm:ss'"
|
|
230
|
+
推荐使用 `@angular/material-date-fns-adapter` 和 `date-fns`:
|
|
225
231
|
|
|
226
|
-
|
|
227
|
-
|
|
232
|
+
```typescript
|
|
233
|
+
import { provideDateFnsAdapter } from '@angular/material-date-fns-adapter';
|
|
234
|
+
import { MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
235
|
+
import { zhCN } from 'date-fns/locale';
|
|
236
|
+
|
|
237
|
+
export const MY_DATE_FORMATS = {
|
|
238
|
+
parse: {
|
|
239
|
+
dateInput: 'yyyy-MM-dd',
|
|
240
|
+
},
|
|
241
|
+
display: {
|
|
242
|
+
dateInput: 'yyyy-MM-dd',
|
|
243
|
+
monthYearLabel: 'MMM yyyy',
|
|
244
|
+
dateA11yLabel: 'PP',
|
|
245
|
+
monthYearA11yLabel: 'MMMM yyyy',
|
|
246
|
+
},
|
|
247
|
+
};
|
|
228
248
|
|
|
229
|
-
|
|
230
|
-
|
|
249
|
+
@Component({
|
|
250
|
+
// ...
|
|
251
|
+
providers: [
|
|
252
|
+
provideDateFnsAdapter(),
|
|
253
|
+
{ provide: MAT_DATE_LOCALE, useValue: zhCN },
|
|
254
|
+
{ provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }
|
|
255
|
+
]
|
|
256
|
+
})
|
|
231
257
|
```
|
|
232
258
|
|
|
233
259
|
### 设置初始值
|
|
@@ -263,15 +289,6 @@ ngOnInit() {
|
|
|
263
289
|
/>
|
|
264
290
|
```
|
|
265
291
|
|
|
266
|
-
### 禁用可选功能(星期和小时选择)
|
|
267
|
-
|
|
268
|
-
```typescript
|
|
269
|
-
<date-time-picker
|
|
270
|
-
[(ngModel)]="selectedRange"
|
|
271
|
-
[optionalFeatures]="false"
|
|
272
|
-
/>
|
|
273
|
-
```
|
|
274
|
-
|
|
275
292
|
## Angular 版本兼容性
|
|
276
293
|
|
|
277
294
|
| Angular 版本 | 支持情况 |
|
|
@@ -317,8 +334,8 @@ A: 组件使用 ISO 8601 格式,完整支持时区信息。
|
|
|
317
334
|
|
|
318
335
|
## 致谢
|
|
319
336
|
|
|
320
|
-
|
|
337
|
+
本项目参考了 [material-tailwind-range-date-picker](https://github.com/omidkh68/material-tailwind-range-date-picker) 和 [Angular Material Datepicker](https://material.angular.dev/components/datepicker/overview) 的设计理念和实现方法,在此感谢这些优秀项目及其开发者!
|
|
321
338
|
|
|
322
339
|
## 许可证
|
|
323
340
|
|
|
324
|
-
MIT License © 2026 [xylplm](https://github.com/xylplm)
|
|
341
|
+
MIT License © 2026 [xylplm](https://github.com/xylplm)
|