0

我有一些日期是这样写的:

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 格式化它们以使它们看起来更干净?我想把它们放在一张桌子上,像这样:

日期 | 价格 | 笔记

4

3 回答 3

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>');
});

在上面的代码中添加了这个以将其添加到表中

于 2013-08-28T07:27:37.867 回答
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/

于 2013-08-28T07:29:11.560 回答
0

在http://momentjs.com/查看 moment.js

它超级紧凑,比 Date 对象上的常规方法提供了更多的灵活性。

使用 moment.js,您可以执行以下操作:

var current_year = new Date().getFullYear();
var d = moment('7-sep'+' '+current_year);
d.format("Do MMMM YYYY");

这将返回“2013 年 9 月 7 日”

于 2013-08-28T07:39:00.770 回答