格式化从Json返回的日期

时间:2017-09-15 16:53:29

标签: javascript json ajax

Json返回的日期如下:

2017-09-14T22:11:05.5303556

我希望以用户友好的格式返回,例如:

09/14/2017 22:11:05

这是Json:

[
{
id: 98,
dateCreated: "2017-09-14T22:11:05.5303556"
},
{
id: 99,
dateCreated: "2017-09-14T22:11:05.5615556"
}
]

这是JavaScript:

<script>            
        $.ajax({
            url:'http://mywebsite/api/Response',
            dataType: 'json',               
            success: function(json) {                       
                    myTable = $('#myTable').columns({
                    data:json,
                    schema: [
                        {"header":"ID", "key":"id"},
                        {"header":"Date", "key":"dateCreated"}
                    ],                                                          
                });                     
            }               
        });                     
</script> 

我必须做出哪些更改才能以用户友好的格式显示日期?谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您可能需要查看10 ways to format time and date using javascript

例如,您可以为每个日期执行此类操作:

var example_date = '2017-09-14T22:11:05.5303556';

function formatDate(date) {
	var d = new Date(date),
		month = d.getMonth(),
		date = d.getDate(),
		year = d.getFullYear(),
		hours = ('0' + d.getHours()).slice(-2),
		minutes = ('0' + d.getMinutes()).slice(-2),
		seconds = ('0' + d.getSeconds()).slice(-2);

    month++;

    return (month + '/' + date +'/' + year + ' ' + hours + ':' + minutes + ':' + seconds);
}

console.log(formatDate(example_date));

您还可以使用.toLocaleTimeString().toLocaleDateString()并将两者合并。

如果你不反对使用第三方图书馆,我建议你去MomentJS。它非常适合您轻松格式化日期/时间,例如......

for (var i in json){
  json[i].dateCreated = moment(json[i].dateCreated).format('MM/DD/YYYY hh/mm/ss');
}

...其中json是返回的对象,会产生:

[{"id":98,"dateCreated":"09/14/2017 10/11/05"},{"id":99,"dateCreated":"09/14/2017 10/11/05"}]

答案 1 :(得分:1)

我认为new Date(date).toLocaleDateString()可以完成工作

示例:

   $.ajax({
        url: 'http://mywebsite/api/Response',
        dataType: 'json',               
        success: function(json) {
           const data = json.map((obj) => (
              Object.assign(
                 {},
                 obj,
                 { dateCreated: new Date(obj.dateCreated).toLocaleDateString() }
              )
           ));

           myTable = $('#my-table').columns({
              data: data,
              schema: [
                 { "header": "ID", "key": "id" },
                 { "header": "Date", "key": "dateCreated" }
              ],                                                          
           });               
        }               
    });

我希望有帮助^ __ ^

答案 2 :(得分:0)

JavaScript中的日期格式已经完成了一百万次。

如果您只想要一种简单的格式,请参阅this SO answer。 如果你想要更强大的东西,我建议你Moment.js

时刻示例: moment().format('MMMM Do YYYY, h:mm:ss a');

制作:2017年9月15日,下午12:57:45