我有一些日期写得像这样:
7-sep, 14-sep, 21-sep, 28-sep,
5-oct,12-oct, 19-oct,26-oct,
2-nov, 9-nov, 16-nov, 23-nov,30-nov,
7-dec,14-dec, 21-dec,28-dec-2013.
我如何格式化它们,使用javascript jQuery甚至CSS看起来更干净?我希望他们在一张桌子里,像这样:
日期|价格|注意
答案 0 :(得分:1)
var d = new Date();
var arr =[];
var months = new Array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec');
var month = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var x = "7-sep, 14-sep, 21-sep, 28-sep, 5-oct,12-oct, 19-oct,26-oct,2-nov, 9-nov, 16-nov, 23-nov,30-nov, 7-dec,14-dec, 21-dec,28-dec-2014";
var x_date = x.split(',');
$.each(x_date, function (i, val) {
var dt = ($.trim(val)).split('-');
var dt_new = new Date(months.indexOf(dt[1]) + 1 + ',' + dt[0] + ',' + d.getFullYear());
var day = dt_new.getDate();
var dt_new_ret = day + ([, 'st', 'nd', 'rd'][/1?.$/.exec(day)] || 'th') + ' ' + month[dt_new.getMonth()] + ' ' + dt_new.getFullYear();
arr.push(dt_new_ret);
});
console.log(arr);
$.each(arr, function (i, val) {
$('tbody').append('<tr><td>' + val +
'</td><td>Price Here</td><td>Note Here</td></tr>');
});
在上面的代码中添加了这个以将其添加到表
答案 1 :(得分:0)
显然,你需要以某种方式处理这些日期,具体取决于你所拥有的格式。假设你将日期作为一个字符串,你可以将它“标记”成一个数组来分别获取日期。然后,您可以使用一个简单的循环来创建表行。
var dates = "7-sep, 14-sep, 21-sep, 28-sep, 5-oct,12-oct, 19-oct,26-oct, 2-nov, 9-nov, 16-nov, 23-nov,30-nov, 7-dec,14-dec, 21-dec,28-dec-2013.";
dates = dates.substring(0, dates.length - 1).replace(' ', '');
var datesArray = dates.split(',');
for (var i = 0; i < datesArray.length; i++) {
$('tbody').append('<tr><td>' + datesArray[i] +
'</td><td>Price Here</td><td>Note Here</td></tr>');
}
请参阅此示例:http://jsfiddle.net/FuY38/
答案 2 :(得分:0)
它非常紧凑,比Date对象上的常规方法更灵活。
使用moment.js,您可以执行以下操作:
var current_year = new Date().getFullYear();
var d = moment('7-sep'+' '+current_year);
d.format("Do MMMM YYYY");
这将返回“2013年9月7日”