Javascript
:我有一个函数有s参数s包含这个s=07:05:45PM;
s的时间是字符串形式我想在new Date()
中使用它但是给出了错误我有得到小时分钟秒将此时间转换为24小时格式请帮我输出:无效日期
function time Conversion(s) {
var date=new Date(s);
console.log(date);
}
答案 0 :(得分:2)
根据specification,您可以将dateString
作为参数传递给Date
构造函数。有很多dateString
格式限制,在您的情况下,dateString
(名为s
)对于日期构造函数无效(实际上,您的s
甚至没有日期,它只包括时间。)
可能的解决方案是手动处理您的s
参数:剪切口头部分,将时间分割为:
,然后将序列传递给序列Date
中的year, month, date, hours, minutes, seconds
构造函数,或构建您自己的ISO String
格式:
{year}-{month}-{date}T{hours}:{minutes}:{seconds}.{milliseconds}Z
请注意,两种情况下的小时数应为24小时格式,因此您应手动处理12小时格式化的小时。
答案 1 :(得分:1)
Why does Date.parse give incorrect results?
涵盖您从内置解析器获取无效日期的原因要将字符串转换为07:05:45 PM到24小时,您可以解析部分并生成一个新字符串,如果它在PM结束时添加12小时,如果它在AM结束则更新12(并且更改为12am到00)。 e.g。
function to24HrFormat(s) {
var z = n => (n<10?'0':'')+n;
var b = s.match(/\d+/g);
var ap = /am$/i.test(s)? 0 : 12;
return z((b[0]%12) + ap) + ':' + b[1] + ':' + b[2];
}
// Tests
['07:05:45PM', '06:23:49AM', '12:15:00AM', '11:59:59pm']
.forEach(s => console.log(s + ' => ' + to24HrFormat(s)));
您应该验证输入字符串,并且可能允许丢失秒数。
答案 2 :(得分:0)
从时间字符串中删除AM / PM(需要24小时字符串)
var time = "07:05:45";
var datetime = new Date('1970-01-01T' + time + 'Z');
现在进行基于时间的操作。
答案 3 :(得分:-1)
请尝试使用.SimpleTable-head-2 {
//Code you already have
z-index: 3;
}
.MuiButton-sizeSmall-31 {
z-index: 1;
}
。请参阅referene。