angular - 如何在 Angular2\Typescript 中将字符串转换为日期?

标签 angular typescript

<分区>

我想创建一个具有特定日期的新 Date 对象。 我想到了将它从一个特定的字符串转换过来,例如:

let dateString = '1968-11-16T00:00:00'

如何将它转换为日期对象in typescript

更新:

我在Typescript而不是Javascript,Angular2而不是AngularJS (1.x)中寻求解决方案

最佳答案

您可以使用日期过滤器进行日期转换并以特定格式显示。

在 .ts 文件( typescript )中:

// variables used in html
let dateString = '1968-11-16T00:00:00' 
let newDate = new Date(dateString);

// format date in typescript
getFormatedDate(date: Date, format: string) {
    const datePipe = new DatePipe('en-US');
    return datePipe.transform(date, format);
}

// Convert date to user timezone
const localDate: Date = this.convertToLocalDate('01/01/2021');

convertToLocalDate(responseDate: any) {
    try {
        if (responseDate != null) {
            if (typeof (responseDate) === 'string') {
                if (String(responseDate.indexOf('T') >= 0)) {
                    responseDate = responseDate.split('T')[0];
                }
                if (String(responseDate.indexOf('+') >= 0)) {
                    responseDate = responseDate.split('+')[0];
                }
            }

            responseDate = new Date(responseDate);
            const newDate = new Date(responseDate.getFullYear(), responseDate.getMonth(), responseDate.getDate(), 0, 0, 0);
            const userTimezoneOffset = newDate.getTimezoneOffset() * 60000;

            const finalDate: Date = new Date(newDate.getTime() - userTimezoneOffset);
            return finalDate > Util.minDateValue ? finalDate : null;
        } else {
            return null;
        }
    } catch (error) {
        return responseDate;
    }
}

在 HTML 中:

{{dateString |  date:'MM/dd/yyyy'}}

以下是您可以实现的一些格式:

后端:

public todayDate = new Date();

HTML :

<select>
<option value=""></option>
<option value="MM/dd/yyyy">[{{todayDate | date:'MM/dd/yyyy'}}]</option>
<option value="EEEE, MMMM d, yyyy">[{{todayDate | date:'EEEE, MMMM d, yyyy'}}]</option>
<option value="EEEE, MMMM d, yyyy h:mm a">[{{todayDate | date:'EEEE, MMMM d, yyyy h:mm a'}}]</option>
<option value="EEEE, MMMM d, yyyy h:mm:ss a">[{{todayDate | date:'EEEE, MMMM d, yyyy h:mm:ss a'}}]</option>
<option value="MM/dd/yyyy h:mm a">[{{todayDate | date:'MM/dd/yyyy h:mm a'}}]</option>
<option value="MM/dd/yyyy h:mm:ss a">[{{todayDate | date:'MM/dd/yyyy h:mm:ss a'}}]</option>
<option value="MMMM d">[{{todayDate | date:'MMMM d'}}]</option>   
<option value="yyyy-MM-ddTHH:mm:ss">[{{todayDate | date:'yyyy-MM-ddTHH:mm:ss'}}]</option>
<option value="h:mm a">[{{todayDate | date:'h:mm a'}}]</option>
<option value="h:mm:ss a">[{{todayDate | date:'h:mm:ss a'}}]</option>      
<option value="EEEE, MMMM d, yyyy hh:mm:ss a">[{{todayDate | date:'EEEE, MMMM d, yyyy hh:mm:ss a'}}]</option>
<option value="MMMM yyyy">[{{todayDate | date:'MMMM yyyy'}}]</option> 
</select>

关于angular - 如何在 Angular2\Typescript 中将字符串转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43202250/

相关文章:

javascript - 在 Angular 6 上为 *ngFor 内的输入类型复选框启用双向数据绑定(bind)

angular - 当 Font Awesome 带宽使用量超过我本月计划允许的 npm 带宽时,会发生什么?

angular - 在 ng 服务中,我收到此错误 : ERROR in Error: Internal Error: The name element is already defined in scope to be [object Object]

angular - 将 Moment 与 Angular 库 13 一起使用会导致错误

typescript - "..."[] 在 Typescript 中是什么意思?

typescript - 在 Angular 2 中链接 RxJs Observables

Angular 2 RC5 测试 Promise 在 ngOnInit 中不起作用

typescript - 我想在nestjs中实现自定义缓存

javascript - 使用 Webpack 和 Angular2 生成图像

javascript - 在 Typescript 中过滤数组