函数getUTCDate()返回一个月

时间:2018-06-19 07:16:18

标签: javascript getdate

我有代码(19是日,6是月)

var dateObj = new Date("19.6.2018");
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

newdate =  day + '.' + month + '.' + year;
alert(newdate);

此代码返回NaN.NaN.NaN

函数getUTCDate()返回一个月。我不知道为什么。

我是斯洛伐克人。第一个数字是一天。第二个数字是一个月。

2 个答案:

答案 0 :(得分:4)

Date的dateString参数必须采用Date.parse()

识别的格式
  

表示日期的字符串值。字符串应采用格式   由Date.parse()方法识别(符合IETF的RFC 2822   时间戳以及ISO8601的版本。

日期时间字符串可以采用简化的ISO 8601格式。例如," 2011-10-10"

在你的情况下,它可以是



var dateObj = new Date("2018-06-19");
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

newdate =  day + '.' + month + '.' + year;
console.log(newdate);




您可以像

一样将字符串格式化并正确格式化



const str = "19.6.2018"
const arr = str.split('.');
const newString = `${arr[1]}-${arr[0]}-${arr[2]}`;
console.log(newString)
var dateObj = new Date(newString);
console.log(dateObj)
    var month = dateObj.getUTCMonth() + 1; //months from 1-12
    var day = dateObj.getUTCDate();
    var year = dateObj.getUTCFullYear();

    newdate =  day + '.' + month + '.' + year;
    alert(newdate);




答案 1 :(得分:0)

除了@Shubham Khatri的回答,以下是如何将输入转换为正确的格式:

const getUTCDate = (year, month, day ) => {
  const date = new Date(`${year}-${month}-${day}`);
  const m = date.getUTCMonth() + 1; //months from 1-12
  const d = date.getUTCDate();
  const y = date.getUTCFullYear();

  return [m, d, y]
}

const input = '19.6.2018'
const date = input.split('.')
// Here we convert your input, in the correct order `getUTCDate` expected
const result = getUTCDate(date[2], date[1], date[0])
console.log(result)