首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript打印格式

JavaScript打印格式
EN

Stack Overflow用户
提问于 2014-08-25 20:56:18
回答 2查看 197关注 0票数 0

我正在学习NodeJS,并重写一些代码,看看它是如何比较的。对于一个脚本,我尝试以字符串的形式获取日期,并将它们转换为JavaScript Date对象来执行计算。

通过将字符串转换为数组并处理每个字符,我成功地做到了这一点。但是它看起来很难看,我想知道是否有一种更干净的方法,就像sprintf之类的。我确信我可以找到一个模块,但我想知道在JS中是否有一种本地的方式。这就是我所拥有的:

代码语言:javascript
复制
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);

输出:

代码语言:javascript
复制
Creation Date: 08/13/2014 19:00

再次,上面的工作很好,只是想知道这是否可以做到更清洁。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-25 21:24:08

通常,您将使用Date.parse,但在这里,您不能使用,因为您的输入日期使用自定义格式。

但是有几件事你可以改进:

  • 使用new Date()生成日期对象。然后,您可以格式化它。
  • 在子字符串上使用parseInt() (参见this answer) (例如a.substr(0, 2))。
  • 验证您的输入。
  • 为变量使用更好的名称。a不是一个好名字。
票数 1
EN

Stack Overflow用户

发布于 2014-08-26 00:31:05

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

代码语言:javascript
复制
#!/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);

产出:

代码语言:javascript
复制
Wed Aug 13 2014 19:00:00 GMT-0500 (CDT)

让我继续计算。如果日期对象不能形成,我将添加一些代码来捕捉,等等,但至少这一点更容易读懂。再次感谢你的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25494587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档