2010-09-30 5 views

Répondre

4

var myDate = new Date(parseInt(YYYY,10), parseInt(MM,10)-1, parseInt(DD,10));

noter que le mois prévu au constructeur de la date est le numéro du mois en cours - 1.

des modifications: ok, il y a quelques problèmes avec votre partie date extraction- substring est probablement la le plus gênant des méthodes de sous-chaîne de javascript (sub,substr,substring). Et après le test, je reste à la valeur du mois devant être 1 moins que le nombre réel. Voici un échantillon fixe.

var from_date = "20101127"; //document.getElementById('from_date').value; 
var YYYY = from_date.substring(0, 4); 
var MM = from_date.substring(4, 6); 
var DD = from_date.substring(6); 
var myDate = new Date(parseInt(YYYY, 10), parseInt(MM, 10) - 1, parseInt(DD, 10)); 
alert(myDate); // should be november 27th 2010 
+0

Je pensais que vous deviez certainement -1 mois, mais dans mes tests qui s'est avéré être faux! –

+0

c'est comme ça que ça fonctionne dans IE8 (tout ce que j'ai à tester en ce moment). 'alert (new Date (79,5,24))' dit Juin 24 1979. – lincolnk

+0

Man, je ne sais pas ce qui ne va pas avec Google Chrome, mais il donnait des résultats très incohérents. –

0

C'est facile, j'ai eu des difficultés avec la même question mais j'ai trouvé une solution plus simple. Créez une balise div masquée et définissez la date sur un attribut. puis récupérez l'attribut et utilisez la méthode sous-chaîne pour obtenir quelque chose comme Mar 01.

 <div id="test" style="display:none;" date=""></div> 
    <script type="text/javascript"> 
    var date = new Date(); 
    document.getElementById('test').setAttribute('date',date); 
    var getdate = document.getElementById('test').getAttribute('date'); 
    var newdate = getdate.substr(4,7); 
    alert(newdate); 
    </script> 

C'est tout merci! consultez mon système d'exploitation: hypertos (dot) webege (dot) com