js怎么处理YYYY-MM-DDTHH:mm:ss.sssZ类型的js 时间戳 ss字符串

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
后台传过来的时间字符串是 YYYY-MM-DDTHH:mm:ss.sssZ 格式的在js中需要对其格式化直接使用new Date(xxx)的话,安卓没有问题,ios报Date不合法
我知道对于普通的日期,如,使用new Date(xxx)的话,只需要将改为就行,这样ios和安卓都没问题
但是对于题中所说的格式,-改成/,都没用了,所以这种格式的怎么处理呢?如 T08:01:01.000+0000
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不想动用moment.js,可以试试下面这种形式
var dt = new Date('T08:01:01.000+0000');
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset());
var date = dt.toISOString().slice(0, -5).replace(/[T]/g, ' ');
console.log(date);
如果在IOS端报错,可以尝试先把日期格式处理成普通格式再执行上面的操作
var dt = new Date(Date.parse('T08:01:01.000+0000'));
如果还是解决不了,你还可以联系你们后端把时间格式处理成你想要的形式嘛,你们是个团队,互相协作就是这个意思
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
T08:01:01.000+0000 这种格式应该是
中定义的。关于时区的部分,参考 。
从 RFC 2822 中可以看到 +0000 是合法的,不知道为啥 Safari 不支持。
这事儿既然不能怪后端,那就做个兼容处理吧,对于 Safari,加个冒号进去
const s = "T09:05:07.870+0000";
s.replace(/(\+\d{2})(\d{2})$/, "$1:$2");
const d = new Date(s);
// 或 new Date(Date.parse(s));
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
后台传过来的时间字符串是 YYYY-MM-DDTHH:mm:ss.sssZ 格式的在js中需要对其格式化直接使用new Date(xxx)的话,安卓没有问题,ios报Date不合法
我知道对于普通的日期,如,使用new Date(xxx)的话,只需要将改为就行,这样ios和安卓都没问题
但是对于题中所说的格式,-改成/,都没用了,所以这种格式的怎么处理呢?如 T08:01:01.000+0000
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1、用new Date("T08:01:01.000+0000").Format("yyyy-MM-dd hh:mm:ss");" 16:01:01"2、new Date("T08:01:01.000+0000").Format("yyyy/MM/dd hh:mm:ss");" 16:01:01"写一个Format函数。地址:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
T08:01:01.000+0000 这种格式应该是
中定义的。关于时区的部分,参考 。
从 RFC 2822 中可以看到 +0000 是合法的,不知道为啥 Safari 不支持。
这事儿既然不能怪后端,那就做个兼容处理吧,对于 Safari,加个冒号进去
const s = "T09:05:07.870+0000";
s.replace(/(\+\d{2})(\d{2})$/, "$1:$2");
const d = new Date(s);
// 或 new Date(Date.parse(s));
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
后台传过来的时间字符串是 YYYY-MM-DDTHH:mm:ss.sssZ 格式的在js中需要对其格式化直接使用new Date(xxx)的话,安卓没有问题,ios报Date不合法
我知道对于普通的日期,如,使用new Date(xxx)的话,只需要将改为就行,这样ios和安卓都没问题
但是对于题中所说的格式,-改成/,都没用了,所以这种格式的怎么处理呢?如 T08:01:01.000+0000
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看看这篇博客的第五条:new Date(dateStr)本来在IE上就全挂了,可以这样,正则抽出年月日,时分秒,先set再get拼接;
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
T08:01:01.000+0000 这种格式应该是
中定义的。关于时区的部分,参考 。
从 RFC 2822 中可以看到 +0000 是合法的,不知道为啥 Safari 不支持。
这事儿既然不能怪后端,那就做个兼容处理吧,对于 Safari,加个冒号进去
const s = "T09:05:07.870+0000";
s.replace(/(\+\d{2})(\d{2})$/, "$1:$2");
const d = new Date(s);
// 或 new Date(Date.parse(s));
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 zj.jsychrss.gov.cn 的文章

 

随机推荐