首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的字符串不添加其他字符

数组中的字符串不添加其他字符
EN

Stack Overflow用户
提问于 2019-01-15 00:46:23
回答 3查看 63关注 0票数 1

当我从nodeschool.io处理节点项目时,我需要做的事情之一是构造一个日期格式,并确保根据它的显示方式正确地格式化它。这是格式:“YYYY DD hh:mm”,我使用date对象获取我需要的日期信息,然后将其收集到一个数组中,创建一个轻松的for循环,将其转换为string,使某些格式化实践变得更容易。我一直试图做的一个特定的格式化实践是将"0“添加到月和日,因为该格式在月和日中需要两位数,但是,这两个数字只有1位数,因为这是当前日期。由于一些奇怪的原因,0将不会被追加。

代码语言:javascript
复制
var date = new Date();
// Date Format: "YYYY-MM-DD hh:mm"
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var dates = [year, month, day, hour, minute];

// Conversion and Formatting
for (var i = 0; i < dates.length; i++) {
    dates[i] = dates[i].toString();
    if (dates[i].length < 2) {
        dates[i] = "0" + dates[i];
    }
}
var format = year + "-" + month + "-" + day + " " + hour + ":" + 
minute; 
console.log(format);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-15 01:28:53

您需要在format循环中包含对for的赋值,并将适当的分隔符附加到每个元素。以下是修改后的代码:

代码语言:javascript
复制
var date = new Date();
// Date Format: "YYYY-MM-DD hh:mm"
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var dates = [year, month, day, hour, minute];

let format = "";
const separators = ["", "-", "-", " ", ":"];
// Conversion and Formatting
for (var i = 0; i < dates.length; i++) {
    dates[i] = dates[i].toString();
    if (dates[i].length < 2) {
        dates[i] = "0" + dates[i];
    }
    format += separators[i] + dates[i];
}
console.log(format);
票数 1
EN

Stack Overflow用户

发布于 2019-01-15 01:20:53

也许你可以试试这样的方法

代码语言:javascript
复制
function td(n) {
    return ('' + n).length == 2 ? n : '0' + n;
}

let date = new Date();
let format = date.getFullYear() + '-' +
    td(date.getMonth() + 1) + '-' +
    td(date.getDate()) + ' ' +
    td(date.getHours()) + ':' +
    td(date.getMinutes());

console.log(format);
票数 1
EN

Stack Overflow用户

发布于 2019-01-15 00:48:24

您的数组包含副本、yearmonth等变量的。更改数组中的值对原始变量没有任何影响。

您可以做的是使用第二个数组来保存组件值之间的分隔符,并在迭代期间构建结果字符串:

代码语言:javascript
复制
var seps = ["-", "-", " ", ":"];
format = ""; // initialize the result formatted date
for (var i = 0; i < dates.length; ++i) {
  if (i > 0)
    format += seps[i - 1]; // add separator
  var d = dates[i].toString();
  if (d.length < 2)
    d = "0" + d;
  format += d;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54191257

复制
相关文章

相似问题

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