Javascript中iso8601时间间隔的解析
我正在构建一个前端组件,允许用户根据ISO 8601规范选择日期\时间范围,并可以选择使用时间段 组件将需要绑定到用户已经设置的任何现有值,因此我正在研究如何解析字符串的时间间隔段,例如: “2007-03-01T13:00Z/P1Y2M10DT2H30M” 我不确定如何提取时间间隔片段的数字部分,这样我就可以得到某种对象\数组,由字母键入,这样我就可以轻松确定年数(Y)、月数(M)等 我可以试试我自己的正则表达式,但我怀疑已经有人这么做了 我想给用户提供一系列数字输入,并为用户之前设置的任何现有周期值设置这些数字 有人能在这里提出一些建议吗 我希望这是有意义的 谢谢试试这个:Javascript中iso8601时间间隔的解析,javascript,datetime,Javascript,Datetime,我正在构建一个前端组件,允许用户根据ISO 8601规范选择日期\时间范围,并可以选择使用时间段 组件将需要绑定到用户已经设置的任何现有值,因此我正在研究如何解析字符串的时间间隔段,例如: “2007-03-01T13:00Z/P1Y2M10DT2H30M” 我不确定如何提取时间间隔片段的数字部分,这样我就可以得到某种对象\数组,由字母键入,这样我就可以轻松确定年数(Y)、月数(M)等 我可以试试我自己的正则表达式,但我怀疑已经有人这么做了 我想给用户提供一系列数字输入,并为用户之前设置的任何现
var dateStr = '2007-03-01T13:00Z/P1Y2M10DT2H30M';
var date = new Date(Date.parse(dateStr.split('/')[0]));
试试这个:
var dateStr = '2007-03-01T13:00Z/P1Y2M10DT2H30M';
var date = new Date(Date.parse(dateStr.split('/')[0]));
和往常一样,现在,现在,伙计们!!谢谢你们的回复,我现在确实看了,但不确定它是否支持时间周期。所以我喜欢这种方法的外观,会尝试一下!哦,请删除我的上一条注释并使用以下内容:
“2007-03-01T13:00Z/P1Y2M10DT2H30M”.split(“/”).pop().split(/\D+/).map(Number).slice(1,-1)
提供一个数字[Y,M,D,H,M]数组。(我拿出filter(),如果某个值为零,它将移动数组)dandavis-感谢这个建议,这确实给了我一个数组,但我无法知道哪个值代表哪个时间段。有没有办法得到一个键控对象,例如{P:1,Y:2,…}?一如既往,现在,伙计们!!谢谢你们的回复,我现在确实看了,但不确定它是否支持时间周期。所以我喜欢这种方法的外观,会尝试一下!哦,请删除我的上一条注释并使用以下内容:“2007-03-01T13:00Z/P1Y2M10DT2H30M”.split(“/”).pop().split(/\D+/).map(Number).slice(1,-1)
提供一个数字[Y,M,D,H,M]数组。(我拿出filter(),如果某个值为零,它将移动数组)dandavis-感谢这个建议,这确实给了我一个数组,但我无法知道哪个值代表哪个时间段。有没有一种方法可以获取键控对象,例如{P:1,Y:2,…}?=newdate(dateStr.split('/')[0])
足够了,但请仔细阅读问题…=newdate(dateStr.split('/')[0])代码>足够了,但请仔细阅读问题。。。