2010-05-11 9 views
0

J'essaye de convertir une date JSON en format jj/mm/aaaa, ce que je réussis à faire avec succès.JSON La date est-elle la date du jour?

Le problème que je rencontre est que la date de l'enregistrement dans la base de données est par exemple, 2009-06-29 qui revient cependant, la JSON habituelle /Date(1246230000000)/, quand je tente de le transformer en la mention précédemment dd/mm/yyyy, ça se passe comme date d'aujourd'hui.

Le code que je utilise pour essayer de le faire est:

$('input#EmployeeName').result(function(event, data, formatted) { 
    $('#StartDate').html(formatJSONDate(Date(!data ? '' : data.StartDate))); 
}); 

function formatJSONDate(jsonDate) { 
    var newDate = dateFormat(jsonDate, "dd/mm/yyyy"); 
    return newDate; 
} 

J'utilise JavaScript Date Format pour essayer de lancer la fonction.

Toute aide est grandement appréciée.

+0

Pouvez-vous publier à quoi ressemble le véritable JSON? Parce que JSON n'a pas ** de type de date (voir http://json.org/), la chose '/ Date (xxxx) /' est juste une convention que certaines personnes utilisent. Si nous pouvons voir ce qui apparaît réellement dans votre JSON, nous pouvons vous aider à le convertir. –

+0

Pas clair d'où vient ce numéro 1224043200000; ce n'est ni secondes ni millisecondes depuis The Epoch pour 1999-12-31 (qui est 946598400000). –

+0

La date elle-même et le JSON ne sont que des exemples. Je vais modifier la question d'origine pour utiliser des informations précises. – LiamGu

Répondre

2

En supposant que votre JSON ressemble à quelque chose comme ceci:

{ 
    "StartDate": "/Date(1224043200000)/" 
} 

vous pouvez le convertir en une date Javascript réelle comme ceci:

var dt, millis; 

millis = data.StartDate.match(/\/Date\((\d+)\)\//); 
if (millis) { 
    dt = new Date(Number(millis[1])); 
} 

qui extrait les millisecondes puisque la valeur Epoch de la chaîne et l'utilise pour créer une instance de Date.

+1

Et puis vous pouvez 'alert (dt.getDate() + '/' + (dt.getMonth() + 1) + '/' + dt.getFullYear())' –