我正在学习NodeJS,并重写一些代码,看看它是如何比较的。对于一个脚本,我尝试以字符串的形式获取日期,并将它们转换为JavaScript Date对象来执行计算。
通过将字符串转换为数组并处理每个字符,我成功地做到了这一点。但是它看起来很难看,我想知道是否有一种更干净的方法,就像sprintf之类的。我确信我可以找到一个模块,但我想知道在JS中是否有一种本地的方式。这就是我所拥有的:
var a = '081320141900'.split('');
creationDate = a[0] + a[1] + "/" + a[2] + a[3] + "/" + a[4] + a[5] + a[6] + a[7] + " " + a[8] + a[9] + ":" + a[10] + a[11];
console.log('Creation Date: ' + creationDate);输出:
Creation Date: 08/13/2014 19:00再次,上面的工作很好,只是想知道这是否可以做到更清洁。
发布于 2014-08-25 21:24:08
通常,您将使用Date.parse,但在这里,您不能使用,因为您的输入日期使用自定义格式。
但是有几件事你可以改进:
new Date()生成日期对象。然后,您可以格式化它。parseInt() (参见this answer) (例如a.substr(0, 2))。a不是一个好名字。发布于 2014-08-26 00:31:05
我想我找到了一个让它看起来更好的方法。
#!/bin/env node
var dateString = '081320141900'.split('');
dateString.splice(2, 0, '/');
dateString.splice(5, 0, '/');
dateString.splice(10, 0, ' ');
dateString.splice(13, 0, ':');
createDate = new Date(dateString.join(''));
console.log(createDate);产出:
Wed Aug 13 2014 19:00:00 GMT-0500 (CDT)让我继续计算。如果日期对象不能形成,我将添加一些代码来捕捉,等等,但至少这一点更容易读懂。再次感谢你的帮助。
https://stackoverflow.com/questions/25494587
复制相似问题