选择一个日期,然后在 yyyymmdd 中将格式从 UNIX 转换为 UTC

Pick a date then convert format from UNIX to UTC in yyyymmdd

Objective:在块末尾的数组中设置日期为:yyyymmdd,包括零。 (示例数据构建:numDaysAPITimes = [20150403])。我得到的是没有正确获取月份,并且 numDaysAPITimes 数组出于某种原因只存储年份。

    var totalPrecipSinceDate;
        var numDaysAPITimes = [];
        var userDataDatePick =  document.getElementById('dateRngPick').value; 

     if (userDataDatePick >=1)
        {
        for (var i = 0; i <= (userDataDatePick-1); i++) //place user userData-1 where i <= input
            {
                var myDate = new Date(); //
                var epoch = myDate.getTime(); 
                var unixEpoch = Math.round(epoch/1000)
                var backDateEpochTime = Math.round(unixEpoch - (86400 * i)); //Get each day (UNIX seconds)
                  var d = new Date(backDateEpochTime); //Convert to UTC
                var curr_date = d.getDate();
                var curr_month = d.getMonth() + 1; //Months are zero based
                var curr_year = d.getFullYear();

                numDaysAPITimes[i] = (curr_year + curr_month + curr_date);
            }
        }
    else
        {
           alert("You have not entered a valid number for the date.");

           numDaysAPITimes.length = 0;
        }

几件事:

  1. 你的日期信息正在以数字的形式加在一起,这就是为什么这一年似乎只是过去了。一种处理方法是使用 toString() 方法。

  2. 您可能需要在日期和月份前导零,您可以通过在前面添加 0 然后执行切片 -2.

    [= 来实现24=]

看起来像 This JSFiddle, or:

    var totalPrecipSinceDate;
        var numDaysAPITimes = [];
        var userDataDatePick =  2;//document.getElementById('dateRngPick').value; 

     if (userDataDatePick >=1)
        {
        for (var i = 0; i <= (userDataDatePick-1); i++) //place user userData-1 where i <= input
            {
                var myDate = new Date(); //
                var epoch = myDate.getTime(); 
                var unixEpoch = Math.round(epoch/1000)
                var backDateEpochTime = Math.round(unixEpoch - (86400 * i)); //Get each day (UNIX seconds)
                  var d = new Date((1000*backDateEpochTime)); //Convert to UTC
                var curr_date = ("0" + d.getDate()).slice(-2)
                var curr_month = ("0"+ (d.getMonth() + 1)).slice(-2); //Months are zero based
                var curr_year = d.getFullYear();
                console.log(d.getMonth());
                numDaysAPITimes[i] = (curr_year.toString() + curr_month.toString() + curr_date.toString());
            }
        }
    else
        {
           alert("You have not entered a valid number for the date.");

           numDaysAPITimes.length = 0;
        }
console.log(numDaysAPITimes)