JavaScript打印格式

时间:2014-08-25 20:56:18

标签: javascript coding-style

我正在学习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

同样,上述工作正常,只是想知道这是否可以做得更干净。

2 个答案:

答案 0 :(得分:1)

通常,您将使用Date.parse,但在此处,您无法使用自定义格式。

但是你可以改进一些事情:

  • 使用new Date()构建日期对象。然后你可以格式化它。

  • 在子字符串上使用parseInt()(请参阅this answer)(例如a.substr(0, 2))。

  • 验证您的输入。

  • 为变量使用更好的名称。 a不是一个好名字。

答案 1 :(得分:0)

我想我找到了让它看起来更好的方法。

#!/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)

让我继续进行计算。我将添加一些代码来捕获Date对象是否无法形成等等,但至少这一点更清晰。再次感谢大家的帮助。