2012-01-20 9 views
15

Mam znacznik czasu Json, który chciałbym przekonwertować na prosty format daty w javascript.Konwertuj znacznik czasu Json na normalną datę i czas w javascript

muszę datę i godzinę w następującym formacie: dd-mm-rrrr HR: MN

Oto data przykład json od życzę, aby wyodrębnić timestamp: "timestamp": 1326439500

{ 
    "count": 2, 
    "d": [ 
     { 
     "title": "Apple iPhone 4S Sale Cancelled in Beijing Amid Chaos (Design You Trust)", 
     "description": "Advertise here with BSA Apple cancelled its scheduled sale of iPhone 4S in one of its stores in China’s capital Beijing on January 13. Crowds outside the store in the Sanlitun district were waiting on queues overnight. There were incidents of scuffle between shoppers and the store’s security staff when shoppers, hundreds of them, were told that the sales [...]Source : Design You TrustExplore : iPhone, iPhone 4, Phone", 
     "link": "http://wik.io/info/US/309201303", 
     "timestamp": 1326439500, 
     "image": null, 
     "embed": null, 
     "language": null, 
     "user": null, 
     "user_image": null, 
     "user_link": null, 
     "user_id": null, 
     "geo": null, 
     "source": "wikio", 
     "favicon": "http://wikio.com/favicon.ico", 
     "type": "blogs", 
     "domain": "wik.io", 
     "id": "2388575404943858468" 
     }, 
     { 
     "title": "Apple to halt sales of iPhone 4S in China (Fame Dubai Blog)", 
     "description": "SHANGHAI – Apple Inc said on Friday it will stop selling its latest iPhone in its retail stores in Beijing and Shanghai to ensure the safety of its customers and employees. Go to SourceSource : Fame Dubai BlogExplore : iPhone, iPhone 4, Phone", 
     "link": "http://wik.io/info/US/309198933", 
     "timestamp": 1326439320, 
     "image": null, 
     "embed": null, 
     "language": null, 
     "user": null, 
     "user_image": null, 
     "user_link": null, 
     "user_id": null, 
     "geo": null, 
     "source": "wikio", 
     "favicon": "http://wikio.com/favicon.ico", 
     "type": "blogs", 
     "domain": "wik.io", 
     "id": "16209851193593872066" 
     } 
    ] 
} 
+1

var data = new Data (znacznik czasu) var godziny = date.getHours(); // część minut z sygnatury czasowej var minutes = date.getMinutes(); // sekunda część z sygnatury czasowej var seconds = date.getSeconds(); // wyświetla czas w formacie 10:30:23 var formattedTime = godziny + ':' + minuty + ':' + sekundy; –

+0

@RajatSinghal, który wyda tylko tyle czasu, prawda? – praneybehl

+0

Możesz pobrać datę, rok od obiektu Date ... zamiast gethours getYear ... –

Odpowiedz

20

Data jest zwracana jako milisekundy od epoki. Poniższy kod tworzy obiekt data JS:

var d = new Date(1245398693390); 
var formattedDate = d.getDate() + "-" + (d.getMonth() + 1) + "-" + d.getFullYear(); 
var hours = (d.getHours() < 10) ? "0" + d.getHours() : d.getHours(); 
var minutes = (d.getMinutes() < 10) ? "0" + d.getMinutes() : d.getMinutes(); 
var formattedTime = hours + ":" + minutes; 

formattedDate = formattedDate + " " + formattedTime; 

Oto a working fiddle.

+0

Dzięki mate za szybki przykład. Ale to daje mi tę całość: 2009-06-19T08: 04: 53.390Z i chciałem czegoś takiego jak dd-mm-rrrr hr: mn – praneybehl

+0

@praneybehl, źle mnie zrozumiałem. Po prostu chcesz czas? –

+0

bez wiązania Potrzebuję daty w tym formacie: dd-mm-rrrr hr: mn – praneybehl

2
<script> 
var timestamp=1326439320; 
var date=new Date(timestamp); 
var hours = date.getHours(); // minutes part from the timestamp 
var minutes = date.getMinutes(); // seconds part from the timestamp 
var seconds = date.getSeconds(); // will display time in 10:30:23 format 
var formattedTime = hours + ':' + minutes + ':' + seconds; 
alert(formattedTime); 
</script> 
4

Extend prototyp Date jest włączenie funkcji formatowania jak tak (lub znaleźć lub stworzyć własne):

Date.prototype.format = function (formatString) { 
    // Returns a formatted date string 
    var month = this.getMonth() + 1, 
     day = this.getDate(), 
     year = this.getFullYear(), 
     hours24 = this.getHours(), 
     hours = (hours24 === 0 ? 12 : hours24 > 12 ? hours24 - 12 : hours24), 
     meridiem = hours24 >= 12 ? "PM" : "AM", 
     minutes = this.getMinutes(), 
     seconds = this.getSeconds(); 

    return formatString.replace(/(MM)/g, month.padLeft(2, '0')) 
     .replace(/(M)/g, month) 
     .replace(/(dd)/g, day.padLeft(2, '0')) 
     .replace(/(d)/g, day) 
     .replace(/(yyyy)/ig, year) 
     .replace(/(yy)/ig, year.toString().substring(2, 4)) 
     .replace(/(hh)/g, hours.padLeft(2, '0')) 
     .replace(/(h)/g, hours) 
     .replace(/(HH)/g, hours24.padLeft(2, '0')) 
     .replace(/(H)/g, hours24) 
     .replace(/(mm)/g, minutes.padLeft(2, '0')) 
     .replace(/(m)/g, minutes) 
     .replace(/(ss)/g, seconds.padLeft(2, '0')) 
     .replace(/(s)/g, seconds) 
     .replace(/(tt)/g, meridiem.toLowerCase()) 
     .replace(/(TT)/g, meridiem); 
}; 

Następnie do konwersji znacznika czasu do pożądanego formatu, dd-mm-yyyy hr:mn (jak wspomniano w swoim komentarzu), można wykonać następujące czynności:

var dateString = new Date(timestamp).format("dd-MM-yyyy hh:mm"); 

[Edytuj] Oto funkcja pad towarzyszących:

Number.prototype.padLeft = function (width, padChar) { 
    // Returns a padded string 
    padChar = padChar || ' '; 
    var value = this.toString(); 
    while (value.length < width) { 
     value = padChar + value; 
    } 
    return value; 
}; 
+1

WOW, która jest bardzo wszechstronna. Doceniam, że poświęciłeś czas na wyjaśnienie tego. Nie mogę głosować w tej chwili, gdy ktoś zaznaczył moje pytanie w dół lub zagłosowałbym na twoją odpowiedź. Jeszcze raz dziękuję – praneybehl

Powiązane problemy