10
votes

Convertir la chaîne de date Java à la date JavaScript

Lorsque j'envoie une date via JSON à partir de Java à JavaScript, il envoie quelque chose comme ceci: xxx pré>

JavaScript ne parvient pas à analyser cette chaîne en date p>

var d = new Date(ds);


2 commentaires

Ceci a été demandé en janvier 2011, Duo Link est avril 2011, comment peut-il être en double?


Le "duplicate" est fermé pour être incertain ce qui est demandé. Il est temps de rouvrir cette question.


4 Réponses :


16
votes

Vous avez besoin de JS qui analysez la chaîne et retournez l'année, le mois, la journée, la minute, l'heure, la seconde dans les chaînes: xxx

puis instanciez le constructeur de date: xxx


3 commentaires

La ligne 3 devrait être second = ds.split (":") [2], , la suppression 4ème ligne, la 5ème ligne doit être last_part2 = ds.split ("") [1], . Vous pouvez renommer Last_Part2 car ce n'est plus le 2ème.


Merci d'avoir écrit le code, cela a fonctionné comme un charme!


Une autre approche serait d'utiliser Moment.js pour obtenir une date Objet: Var D = moment (DS, "HH: MM: SS DD / MM / AAAA"). Asdate (); La deuxième chaîne est le format à utiliser pour l'analyse de la chaîne de date d'entrée .



4
votes

Pour être du bon côté, vous devriez obtenir le temps en millisecondes en Java et envoyer cela à JSON à JavaScript. Là, vous pouvez utiliser xxx


0 commentaires

4
votes

Il y a un certain nombre de façons que vous pouvez appeler la date code> code> constructeur.
De la référence à http://www.w3schools.com/js/js_obj_date.asp :

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)


0 commentaires

3
votes
function stringToDate(_date,_format,_delimiter)
{
        var formatLowerCase=_format.toLowerCase();
        var formatItems=formatLowerCase.split(_delimiter);
        var dateItems=_date.split(_delimiter);
        var monthIndex=formatItems.indexOf("mm");
        var dayIndex=formatItems.indexOf("dd");
        var yearIndex=formatItems.indexOf("yyyy");
        var month=parseInt(dateItems[monthIndex]);
        month-=1;
        var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
        return formatedDate;
}

stringToDate("17/9/2014","dd/MM/yyyy","/");
stringToDate("9/17/2014","mm/dd/yyyy","/")
stringToDate("9-17-2014","mm-dd-yyyy","-")

0 commentaires