![](/img/trans.png)
[英]Javascript: how to convert datetime from yyyy-mm-ddThh:mm:ss to m/d/yyyy h:mm am/pm
[英]Javascript convert yyyy-mm-ddTHH:MM:SS to DAY of week (MON) HH:MM AM/PM
我有這樣的格式
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;
};
};
關於如何做到這一點的想法?
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);
如果不了解有關格式化此日期的更多詳細信息,可以使用vanilla JS Date
對象的toLocaleString
方法快速完成此操作。 有很多選項可以讓你以你想要的方式輸出日期/時間值(可以在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
看看這個功能提供了什么。 。 。 有很多靈活性可以使用。
您不一定需要包含一周中的日期和月份的數組。
轉換為字符串時的日期對象實際上包含您需要的信息。 你可以這樣做:
/**
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.