我在下面有这个简单的JavaScript函数,可以将JavaScript日期转换为更易读的格式。
现在你必须传入一个有效的Date对象,但是我想修改它以便它接受Date对象或带有日期值的字符串,并返回格式化的日期,而不管传递给它的是哪个版本。
function formatDate(date) {
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = hours + ':' + minutes + ' ' + ampm;
return date.getMonth()+1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime;
}
用法:
var d = new Date(date_string);
var e = formatDate(d);
将此2015-09-16 03:18:12
转换为9/16/2015 3:18 pm
我希望能够传入Date对象...
var dateObject = new Date(date_string);
var e = formatDate(dateObject);
或日期字符串...
var dateString = `2015-09-16 03:18:12`;
var e = formatDate(dateString);
答案 0 :(得分:1)
执行此操作的方法是通过typeof
在函数中进行类型检查。
function formatDate(date) {
if(typeof date === "string") {
// parse the date string into a Date object
}
// now date is already a Date object, or it has been parsed
var hours = date.getHours();
...
实际上解析Date字符串超出了问题的范围。
答案 1 :(得分:1)
在决定走哪条路之前,您可以检查变量的类型:
function formatDate(date) {
if(typeof(date) == "string") {
var date_string = date;
date = new Date(date_string);
}
// Then just keep going!
}