在日期选择器的onchange方法中,我把日期作为字符串传递,如 ddmmyyyy
(2010-2020年)至 dd/mm/yyyy
. 我不知道如何将日期格式转换为 dd/mm/yyyy
.在customerDateParserFormatter中,字符串需要从ddmmyyyy转换为ddmmyyyyy。
@Injectable()
export class CustomDateParserFormatter {
parse(value: string): NgbDateStruct {
if (!value) {
return null;
}
const parts = value;
parts.split('/');
console.log("first calling");
return { year: +parts[0], month: +parts[1], day: +parts[2] } as NgbDateStruct;
}
format(date: NgbDateStruct): string {
// tslint:disable-next-line:prefer-template
console.log("second calling");
return date ? ('0' + date.day).slice(-2) + '/' + ('0' + date.month).slice(-2) + '/' + date.year : null;
}
}
<input class="form-control"
placeholder="DD/MM/YYYY"
ngbDatepicker
formControlName="dateofBrith"
[minDate]="{year: 1975, month: 1, day: 1}"
[maxDate]="{year: 2020, month: 12, day: 31}"
name="dp"
#d="ngbDatepicker"
(ngModelChange)="changeDob($event)"
maxlength="10">
<div class="input-group-append">
<button class="btn calendar btn-custom btn-outline-secondary"
(click)="d.toggle()"
type="button"><img src="/assets/images/dateicon.png"></button>
</div>
changeDob(value) {}
在这个方法中,我从日期选择器中得到的值点击为 {year:2020,month:10,day:10}
. 同时,用户输入日期,而不是点击输入字段,我收到的值是一个字符串。我不知道如何转换格式,不知道如何继续。请理解我的问题。
我已经在这里回答了这个问题。检查第三个答案 这个 链接。我用的是yyyy-mm-dd,你可以在typescript代码中使用dd-mm-yyyy格式。只要将最后一行修改为 let finalDate = day + "/"+ month + "/" + year ;