2012-08-11 3 views
2

J'essaye actuellement de mettre à jour automatiquement la date par Javascript. Le code suivant est un exemple où le nombre augmente de 1 à chaque fois, mais je dois également mettre à jour la date dans la colonne suivante en l'augmentant d'un mois à chaque fois.Date de mise à jour avec Javascript

function repeater_update_order(repeater) 
{ 
    repeater.find('> table > tbody > tr.row').each(function(i){ 
     $(this).children('td.order').html(i+1); 
    }); 

}; 

Je sais que vous pouvez mettre à jour une date en utilisant les éléments suivants Javascript:

var x = 1; //or whatever offset 
var CurrentDate = new Date(); 
CurrentDate.setMonth(CurrentDate.getMonth()+X); 

Comment puis-je utiliser ce second code pour mettre à jour la date dans un champ?

Un grand merci

+0

Dépend de la façon dont vous voulez formater la date, bien qu'il existe des méthodes pour obtenir une représentation sous forme de chaîne pour un objet Date. Jetez un coup d'œil à l'entrée [MDN] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date) –

+2

Attention à cette modification du mois. Il passera du 31 mars au 1er mai au lieu du 30 avril. – DCoder

+1

Cela fonctionne: 'var d = new Date(); d = new Date (d.getFullYear(), d.getMonth() + 1,1) 'http://jsfiddle.net/mplungjan/Vb94B/ – mplungjan

Répondre

0

En vous HTML, les valeurs de date de la table sont des chaînes que nous interprétons comme dates. Vous devez analyser cette chaîne dans un objet Date JS, ajouter un mois et reconvertir au format de chaîne d'origine.

Si, comme vous le dites, les dates sont toujours le premier du mois, alors vous pourriez court cicuit le processus en analysant et en convertissant en une seule fonction:

function nextMonth (d) { 
    d = d.match (/^(.*)(\d\d)/(\d\d)/(d\d\d\d)(.*)$/ 
    return d ? d[0] + d[1] + '/' + (d[2] < 11 ? +d[2] + 1 : 1) + '/' + (d[2] >= 11 ? 1 + +d[3] : d[3]) + d[4]; 
    } 

Cela suppose que les données sont toujours stockées dans la chaîne au format jj/mm/aaaa. Si votre format diffère, vous devrez ajuster en conséquence.

Si votre format est complexe ou non cohérent, vous pouvez envisager d'utiliser une bibliothèque de dates telle que Datejs.