我有这个字符串:
3913-12-10T20:00:00+0000
如何将其更改为dd / mm / yyyy格式?我的主要问题是我不认识这种模式。它实际上是11/11/2013,但我不知道如何提取它。
答案 0 :(得分:3)
就这样做:
var d= new Date("3913-12-10T20:00:00+0000");
var newDate = d.getDate() + '/' + d.getMonth() + '/' + d.getFullYear();
或您知道的任何其他日期格式功能。
答案 1 :(得分:2)
您从中获取此数据的服务器会为您提供错误的数据。您应该向他们报告,以便他们可以修复它。他们可能正在使用已弃用的API和/或手动构建此字符串(错误地)。
字符串 有效ISO-8601,除了年份偏移+1900,月份偏+1,白天偏-1。
因此,一种解决方案是按原样解析它,然后偏移日期对象。我个人非常喜欢moment.js库来处理JavaScript中的日期。
var dateString = '3913-12-10T20:00:00+0000',
dateObj = moment(dateString);
dateObj.subtract({'y': 1900, 'M': 1}).add('d', 1);
console.log(dateObj.format('MM/DD/YYYY')); // 11/11/2013
或者如果您更喜欢使用原生Date
个对象:
var dateString = '3913-12-10T20:00:00+0000',
dateObj = new Date(dateString);
dateObj.setFullYear(dateObj.getFullYear() - 1900);
dateObj.setMonth(dateObj.getMonth() - 1);
dateObj.setDate(dateObj.getDate() + 1);
console.log(dateObj.toDateString()); // Mon Nov 11 2013
答案 2 :(得分:-2)
function dateString(d, i) {
var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var curr_date = d.getDate() + i;
var sup = "";
if (curr_date == 1 || curr_date == 21 || curr_date ==31){
sup = "st";
}
else if (curr_date == 2 || curr_date == 22){
sup = "nd";
}
else if (curr_date == 3 || curr_date == 23){
sup = "rd";
}
else{
sup = "th";
}
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var dateString = curr_date + sup + " " + m_names[curr_month] + " " + curr_year;
return dateString;
}