我想创建一个带有特定日期的新日期对象.

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

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

Update:

我要的是解决方案in Typescript,而不是Javascript,解决方案Angular2,而不是AngularJS(1.x)

推荐答案

可以使用日期过滤器转换日期并以特定格式显示.

In .ts file (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;
    }
}

In HTML:

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

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

Backend:

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>

Typescript相关问答推荐

如何传递基于TypScript中可变类型的类型?

使用前的组件渲染状态更新

带有微前端的动态React路由问题

rxjs forkJoin在错误后不会停止后续请求

我可以为情态车使用棱角形的路由守卫吗?

TypeScrip 5.3和5.4-对`Readonly<;[...number[],字符串]>;`的测试版处理:有什么变化?

为什么我的条件类型不能像我预期的那样工作?

为什么在这个例子中,我把缺少的属性添加到对象中时,TypeScrip没有拾取,如何修复?

被推断为原始类型的交集的扩充类型的交集

将具有Readonly数组属性的对象接口转换为数组

如何编辑切片器以使用CRUD调用函数?

NPM使用Vite Reaction应用程序运行预览有效,但我无法将其部署到Netlify

当数组类型被扩展并提供标准数组时,TypeScrip不会抱怨

当传递带有或不带有参数的函数作为组件props 时,我应该如何指定类型?

如何静态键入返回数组1到n的函数

为什么`map()`返回类型不能维护与输入相同数量的值?

窄SomeType与SomeType[]

为什么过滤器不改变可能的类型?

带动态键的 TS 功能

对于通过 Axios 获取的数据数组,属性map在类型never上不存在