2015-11-22 23 views
7

tôi có mã JSON:Chuyển đổi chuỗi thành ngày thời gian thực và thời gian

{ "time":"2015-10-20T11:20:00+02:00" } 

Tôi đọc mà JSON từ kịch bản của tôi và đầu ra trong bảng là:

2015-10-20T11:20:00+02:00 

Tuy nhiên tôi muốn đầu ra là bình đẳng cho đến ngày đó và thời gian của nó.

Ví dụ: Tue 20:00 (nếu múi giờ của tôi là 02)

Trả lời

7

Bạn có thể định dạng ngày như thế này:

var date = new Date('2015-10-20T11:20:00+02:00'); 
var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; 
var output = days[date.getDay()] + ' ' + date.getHours() + ':' + date.getMinutes(); 
console.log(output); 
// Tue 6:20 
3

Theo kinh nghiệm của tôi, cách sạch nhất để đối phó với ngày và Thời gian bằng cách sử dụng moment.js. BTW, tôi sẽ khuyến khích luôn lưu trữ dữ liệu datetime của bạn trong UTC và để trình duyệt cục bộ hiển thị chúng theo múi giờ địa phương.

Để format đầu vào của bạn, bạn có thể làm như sau:

var vrijeme = "2015-10-20T11:20:00+02:00", 
 
    date = moment(vrijeme, moment.ISO_8601); 
 

 

 
var formatted = date.format('ddd h:mm'); 
 
console.log(formatted); // open the console with F12 to see the results
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>

+0

Trong kinh nghiệm của tôi lưu trữ như UTC hoạt động tốt khi bạn lưu trữ điểm trong thời gian (chủ yếu là trong quá khứ). Đối với các ngày trong tương lai, thường cần lưu trữ thời gian được mong đợi của người dùng cùng với chỉ định múi giờ (như 'Châu Âu/Berlin') vì bạn không thể chuyển đổi đáng tin cậy giữa thời gian đó và UTC cho các ngày trong tương lai. – CodesInChaos

1

Bạn có thể đạt được mà không sử dụng ngày mảng

function getTwoDigitValue(str) { 
 
    return str.toString().length == 1 ? "0" + str : str; 
 
} 
 

 
(function() { 
 
    var date = new Date('2015-10-20T11:20:00+02:00'); 
 
    var output = date.toString().split(" ")[0] + " " + 
 
    getTwoDigitValue(date.getHours()) + ":" + 
 
    getTwoDigitValue(date.getMinutes()); 
 

 
    console.log(output) 
 
})()

Các vấn đề liên quan