我有这样的格式
2017-02-14T11:30:00
我要转换为
Fri Feb 14 11:30 PM
是的,我不知道一周的哪一天,所以我放入"周五"那个PM可能应该是AM
使用Javascript我之前传递了完全不同的数据,因此这个功能需要更多修改
var getTravelDateFormatted = function () {
// Example Mon Jan 23
return function (str) {
var daysNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'],
d = new Date(str),
day = d.getDate(),
month = monthNames[d.getMonth()],
year = d.getFullYear().toString().substr(2, 2),
dayName = daysNames[d.getDay()];
//return day + '-' + month + '-' + year + ' (' + dayName + ')';
return dayName + ' ' + month + ' ' + day;
};
};
关于如何做到这一点的想法?
答案 0 :(得分:0)
var getTravelDateFormatted = function() {
// Example Mon Jan 23
return function(str) {
var daysNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'],
d = new Date(str),
day = d.getDate(),
month = monthNames[d.getMonth()],
year = d.getFullYear().toString().substr(2, 2),
hours = d.getHours(),
minutes = d.getMinutes(),
dayName = daysNames[d.getDay()];
//return day + '-' + month + '-' + year + ' (' + dayName + ')';
return hours > 12 ? (dayName + ' ' + month + ' ' + day + ' ' + (hours - 12) + ":" + minutes + " PM"):
(dayName + ' ' + month + ' ' + day + ' ' + hours + ":" + minutes + " AM");
};
}();
var formatedDate = getTravelDateFormatted('2017-02-14T11:30:00');
console.log(formatedDate);

答案 1 :(得分:0)
如果不了解您尝试格式化此日期的详细信息,可以使用vanilla JS toLocaleString
对象的Date
方法快速完成此操作。有很多选项可以让您按照自己喜欢的方式输出日期/时间值(可以在MDN找到很多详细信息)。
所以,一旦你有了自己的价值,就可以用它来做这样的事情:
function formatDate(dDate) {
var oFormatOptions = {
weekday: "short",
month: "short",
day: "numeric",
hour: "numeric",
minute: "numeric"
};
return dDate.toLocaleString("en-US", oFormatOptions);
}
现在,使用您原来的“2月14日早上11:30”示例,您的返回值为:Tue, Feb 14, 11:30 AM
。如果逗号不可接受,可以通过将最后一行更改为:
return dDate.toLocaleString("en-US", oFormatOptions).replace(/,/g, "");
这会产生您要求的价值:Tue Feb 14 11:30 AM
查看该功能提供的功能。 。 。有很多灵活性可以使用。
答案 2 :(得分:0)
您不一定需要包含一周中的日期和月份的数组。
转换为字符串时的日期对象实际上包含您需要的信息。你可以这样做:
/**
A date object will produce a string like this:
*"Tue Jan 10 2017 16:51:05 GMT-0500 (EST)"
* Maybe this is good enough?
*/
var myDateObj = new Date();
var dateParts = myDateObj.toString().split(' ');
var myDay = dateParts[0];
var myMonth = dateParts[1];
var myDate = dateParts[2];
var myHour = myDateObj.getHours();
var myMin = myDateObj.getMinutes();
var ampm = 'AM';
if (myHour > 11) {
ampm = 'PM';
if (myHour !== 12) {
myHour = myHour - 12;
}
}
var dateText = myDay + ' ' + myMonth + ' ' +
myDate + ' ' + myHour + ':' + myMin + ' ' + ampm;
console.log(dateText);