我正在使用JavaScript日期选择器。我需要通过提供月份和年份来解析日期。例如,如果我将参数设为'01 / 2019',则输出应为Tue Jan 1 2019 00:00:00 GMT 05 30
。我知道只有在参数应为有效日期(即,其格式应为.toUTCString()
)时,才可以使用dd mm yyyy
来实现此目的。但就我而言,格式应为mm yyyy
。有没有JS内置方法可以实现这一目标?
其他信息:由于未提供日期(dd),因此可以输入输入月份(mm)的第一个日期。 01/2019-星期二2019年1月1日00:00:00 GMT 05 30
答案 0 :(得分:1)
是的,本机Date
的构造函数,只需先颠倒月份和年份:
const reverse = americanDate => americanDate.split('/').reverse().join('.')
const jan2019 = new Date(reverse('01/2019')),
feb2019 = new Date(reverse('2/2019')),
// Date also works with 2 numbers: (month is 0-based)
mar1990 = new Date(1990, 2)
console.log(jan2019, feb2019, mar1990)
答案 1 :(得分:1)
为了满足您的要求,为什么不以01/
(dd
)格式将静态01/2019
作为mm/yyyy
添加
var currentDate = "01/2019";
var newDate = "01/"+currentDate;
var printDate = new Date(newDate);
document.write(printDate)
JSFiddle here
答案 2 :(得分:0)
有很多方法可以实现您的目标并使用Date
类JavaScript。
您可以传递一个string
文字日期并通过实例化为Date
var date = new Date('2019/1');
console.log(date);
// Expected Output
// Tue Jan 01 2019 00:00:00 GMT+0800 (Malaysia Time)
您还可以使用Date
的重载功能来分隔年,日期和月参数。
var date = new Date(2000, 0, 1);
// The order of parameter in here is Date(yyyy, mm, dd)
// The month starts at 0 so
// 0 = January
// 1 = February
// and so on...
// You can also pass string or integer in here
因此您可以在此处操纵所需的输出。对于更简洁的方法,您可以一个一个地获取数据,并且已经为年份,月份和日期设置了getter
函数。也是时间!
var date = new Date(2000, 0, 1);
var month = date.getMonth() + 1; // adding 1 because the month is zero based
var year = date.getYear();
var output = month + '/' + year;
console.log(output);
// Expected Output
// 1/2000