我有代码(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()返回一个月。我不知道为什么。
我是斯洛伐克人。第一个数字是一天。第二个数字是一个月。
答案 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)