我有一个这样的变量,
var date = "2016-04-07T03:03:03Z";
如何使用JavaScript / jQuery在本地时区将其转换为此6 Apr 2016, 8:03:03 PM
的时间格式?
答案 0 :(得分:1)
试试这个:
var date = "2016-04-07T03:03:03Z";
var myDate = new Date(date);
console.log(myDate);
Thu Apr 07 2016 05:03:03 GMT + 0200(W. Europe Daylight Time)
本地时区的new Date(date)
转换
如果您想要更多地控制价值,也可以格式化日期,请参阅this article了解详情
答案 1 :(得分:1)
由于你想用时区解析它然后格式化输出,我强烈建议使用Moment.js这是一个很好用的库来进行时间和日期操作:
代码看起来像这样:
var date = "2016-04-07T03:03:03Z";
console.log(moment(date).format('D MMM YYYY, h:mm:ss A'));
// "7 Apr 2016, 5:03:03 AM"
答案 2 :(得分:1)
使用Date.prototype.toLocaleDateString()
函数的解决方案:
var date_str = "2016-04-07T03:03:03Z",
options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit'},
formatted = (new Date(date_str)).toLocaleDateString('en-US', options),
date_parts = formatted.substring(0, formatted.indexOf(",")).split(" ").reverse().join(" ");
var formatted_date = date_parts + formatted.substr(formatted.indexOf(",") + 1);
console.log(formatted_date);
输出将如下所示(根据您的语言环境):
7 Apr 2016, 6:03:03 AM
答案 3 :(得分:0)
我尝试过可以帮到你的东西。
编辑:更新了我的代码段,将军事时间格式化为标准时间
function formatDate ( today ) {
var newDateItems = new Array();
var dateItems = String(today).split(" ");
dateItems.forEach(function(item, index){
if (index > 0 && index < 5) {
if (index == 4){
item = getStandardTime(item);
}
newDateItems.push(item);
}
});
return newDateItems.join(" ");
}
//To format military time into standard time
function getStandardTime( time ) {
time = time.split(":");
var hh = Number(time[0]);
var mm = Number(time[1]);
var ss = Number(time[2]);
var timeValue = "";
if (hh > 12) timeValue += hh - 12;
else timeValue += hh;
if (mm < 10) timeValue += ":0" + mm;
else timeValue += ":" + mm
if (ss < 10) timeValue += ":0" + ss;
else timeValue += ":" + ss
timeValue += (hh >= 12) ? " PM" : " AM";
return timeValue
}
var dateToday = new Date();
document.write(formatDate(dateToday));
答案 4 :(得分:0)
这是一个也使用type-script
的函数,并且如果是一位数字,则在分钟和小时前面加上 0 。
function convertISODateToTimeFormat(ISODate: string) {
const newDateObj = new Date(ISODate);
const toMonth = newDateObj.getMonth() + 1;
const toYear = newDateObj.getFullYear();
const toDate = newDateObj.getDate();
const toHours = newDateObj.getHours();
const toHoursProcessed = (toHours < 10 ? '0' : '') + toHours;
const toMin = newDateObj.getMinutes();
const toMinProcessed = (toMin < 10 ? '0' : '') + toMin;
const dateTemplate = `${toDate}.${toMonth}.${toYear} ${toHoursProcessed}:${toMinProcessed}`;
// console.log(dateTemplate)
return dateTemplate;
}
convertISODateToTimeFormat('2019-08-07T02:01:49.499Z')