角度日期管道在格式化日期后在iphone/ios上显示NaN
我正在做一个角度8/5的PWA。用户可以创建事件并将其列在提要页面上。问题是,每个事件的角度日期管道在格式化日期后在iphone/ios上显示NaN,ios,angular,date,progressive-web-apps,Ios,Angular,Date,Progressive Web Apps,我正在做一个角度8/5的PWA。用户可以创建事件并将其列在提要页面上。问题是,每个事件的日期和时间都没有显示出来,在iPhone/iOS设备上显示错误“NaN”。date和time都从start\u at获取信息,该时间的格式为“hh:mm:ss” 以下代码显示了我们如何从MySQL php laravel服务器接收响应数据,以列出事件: getTodos() { console.log("arrived to gettodos"); var id = thi
日期
和时间
都没有显示出来,在iPhone/iOS设备上显示错误“NaN”。date
和time
都从start\u at
获取信息,该时间的格式为“hh:mm:ss”
以下代码显示了我们如何从MySQL php laravel服务器接收响应数据,以列出事件:
getTodos() {
console.log("arrived to gettodos");
var id = this.userInfo.id
this.todoService.getTodos('', '', '', id, false).subscribe(res => {
console.log("res", res);
console.log("frimes", res['frimes']);
// debugger;
// console.log(res);
if (res['code'] === 200) {
// console.log(res['data']);
const userFrimes: any[] = res['frimes'];
this.todos = [] as any[];
console.log(userFrimes);
if (userFrimes && userFrimes.length > 0) {
userFrimes.forEach(uf => {
var timeofFrime = this.formatAMPM(uf.start_at);
if (!this.todoService.isFrimeExpired(uf.start_at)) {
this.todos.push({
owner: this.userInfo.username,
title: uf.title,
message: uf.description,
date: uf.start_at,
time: timeofFrime,
max: uf.max,
guests: uf.member.length, //uf.guests == null ? 0 : uf.guests,
frime_id: uf.id,
status: uf.status,
user_id: uf.user_id
});
}
});
}
} else if (res['code'] === 205) {
} else if (res['code'] === 401) {
}
}, err => {
//this.errorMessage = err.message;
console.log(err);
});
}
在这里,您可以看到正在为formatAMPM()函数提取属性date
和time
,并将其更改为AM/PM日期格式
formatAMPM(d) {
let dd = d + " UTC";
let date = new Date(dd);
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
var min = minutes < 10 ? '0' + minutes : minutes;
var strTime = hours + ':' + min + ' ' + ampm;
return strTime;
}
formatAMPM(d){
设dd=d+“UTC”;
出租日期=新日期(dd);
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;//小时数“0”应为“12”
var min=分钟<10?'0'+分钟:分钟;
变量strTime=hours+':'+min+'+ampm;
返回时间;
}
此处,最终日期字符串显示在管道字段中,其中显示ios上的“NaN”错误。
错误本身表明:
错误:InvalidPipeArgument:'无法将管道'Re'的“2021-05-19 17:15:38”转换为日期'
顺便说一句,“Re”是什么意思
<ion-col size="3" class="date-wrapper">
<h3 class="notification-date">
{{ item.date | date: "shortDate" }}
</h3>
<h3 class="notification-date">
{{ item.time | date: "HH:mm" }}
</h3>
<h3 class="notification-date">{{ item.guests + '/' + item.max }}</h3>
</ion-col>
{{item.date}date:“shortDate”}
{{item.time}日期:“HH:mm”}
{{item.guests+'/'+item.max}
希望你能帮我解决这个问题,因为这让我最近很头疼。。。
提前谢谢 好的,我通过添加这行代码修复了它:
d = d.replace(" ", "T");
日期的格式类似于dd-MM-yyyyyy-HH:MM:ss
,我需要添加“T”,因此它类似于dd-MM-yyyyyyy-HH:MM:ss
formatAMPM(d) {
d = d.replace(" ", "T");
let dd = d + " UTC";
let date = new Date(dd);
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
var min = minutes < 10 ? '0' + minutes : minutes;
var strTime = hours + ':' + min + ' ' + ampm;
return strTime;
}
formatAMPM(d){
d=d。替换(“,”T”);
设dd=d+“UTC”;
出租日期=新日期(dd);
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;//小时数“0”应为“12”
var min=分钟<10?'0'+分钟:分钟;
变量strTime=hours+':'+min+'+ampm;
返回时间;
}
Date管道接收时间戳(数字)、日期对象或ISO(),请仔细检查字符串是否与ISO格式兼容谢谢!我相信这可能不是真正的问题,因为我现在可以正确显示日期,但在formatAMPM()函数中,它无法读取函数var hours=date.getHours();var minutes=date.getMinutes();