2011-06-22 28 views
6

Naprawdę nie mam pojęcia, co robię źle tutaj. Nie mogę zmusić Datejs do prawidłowego parsowania "12:00", ale wydaje się, że działa dobrze w innych terminach. Poniżej znajduje się klip z debuggera Firefox:Datejs - Problem z 12:00 pm

enter image description here

+1

Działa dobrze dla mnie w Chrome działającym w konsoli bezpośrednio na stronie internetowej datejs. – Matt

+0

Tak, to też działało dla mnie, właściwie –

+0

Której wersji DateJS używałeś w powyższym? – Matt

Odpowiedz

16

Pobierz najnowszą wersję Datejs z SVN nie wersji w sekcji „download”.

+6

Tak, działało: http://datejs.googlecode.com/svn/trunk/build/date-en-US.js –

0

Spróbuj zawinąć kod w IIFE.

<!DOCTYPE html> 
<html> 
    <body> 
     <input type=text id=d onkeyup="parsedate()"> 
     </input> 
     <br> 
     <span id=output></span> 
     <script type="text/javascript" src="../../../static/js/date.js"></script> 
     <script> 
      (function() { 
        parsedate = function() { 
         var input = document.getElementById('d').value; 
         var output = document.getElementById('output'); 
         var d = Date.parse(input); 
         if (d !== null) { 
          output.innerHTML = d.toString(); 
         } else { 
          output.innerHTML = "------" 
         } 
        } 
       }()); 
     </script> 
    </body> 
</html> 

Iife będąc

(function(){ 
    //code 
}()); 

Co jestem ciekaw dlaczego FireFox zachowuje się w ten sposób. Wiem, że kilka lat temu dodali aktualizacje zabezpieczeń, które uniemożliwiają nadpisanie funkcji Date.prototype, ale dlaczego IIFE jest w stanie uzyskać dostęp do tego zakresu?