2015-07-15 1 views
2

Je suis programmeur depuis seulement quelques mois, et je suis super novice en Javascript, alors aidez-moi s'il y a un moyen plus simple. Je crée une liste déroulante de mois et une zone de texte de l'année. Existe-t-il une meilleure façon de faire ma boîte de sélection de mois? Et comment puis-je formater ma date en aaaa-mm-jj? Merci!Javascript Datetime Format

<div class="form-group"> 
      <label for="month">Month:</label> 
      <select id="month"> 
       <option value="0">January</option> 
       <option value="1">February</option> 
       <option value="2">March</option> 
       <option value="3">April</option> 
       <option value="4">May</option> 
       <option value="5">June</option> 
       <option value="6">July</option> 
       <option value="7">August</option> 
       <option value="8">September</option> 
       <option value="9">October</option> 
       <option value="10">November</option> 
       <option value="11">December</option> 
      </select> 
    </div> 
    <div class="form-group"> 
      <label for="year">Year:</label> 
      <input type="text" id="year" value=""/> 
    </div> 


    <script> 
     $(document).ready(function() { 
      var budget_start_date = new Date(year, month, 1); 
      var budget_end_date; 
      $('#start_date').val(budget_start_date.toString('yyyy-MM-dd')) 
      $('#end_date').val(budget_end_date.toString('yyyy-MM-dd')) 
     }; 
    </script> 
+0

vous pouvez utiliser jQuery UI datepicker, il a une méthode pour cela: $ .datepicker.formatDate –

+1

Pensez à utiliser [moment.js] (http://momentjs.com) pour le formatage. –

Répondre

2

On dirait que vous essayez de réinventer la roue dans celui-ci, vous utilisez déjà jQuery et vous pourriez aussi bien utiliser jQuery Date Picker, après avoir chargé les références que vous obtenez un calendrier fonctionnel complet en faisant $('#yourDateField').datepicker()

a propos de la partie de format, vous pouvez utiliser DataJS, le format est simple dt.toString('dd-MM-yyyy')

0

Une mise en œuvre de la mise à jour:

/** 
* Default format:yyyy-mm-dd hh:ii:ss 
* @param string stamp Time in milliseconds 
* @param string format Your desired format 
* @param boolean zero With zero-prefix or not 
*/ 
function format(timestamp, format, zero){ 
    var stamp = Number(timestamp), 
     date = new Date(stamp), formatDate, 
     f = format ? format : "yyyy-mm-dd hh:ii:ss", 
     _d = (zero === undefined) ? l.format.zero : function(s){return s;}; 

    var year = _d(date.getFullYear()), 
     month = _d(date.getMonth() + 1), 
     day = _d(date.getDate()), 
     hour = _d(date.getHours()), 
     minute = _d(date.getMinutes()), 
     second = _d(date.getSeconds()); 

    formatDate = f.replace(/yyyy/i, year).replace(/mm/i, month).replace(/dd/i, day) 
       .replace(/hh/i, hour).replace(/ii/i, minute).replace(/ss/i, second); 
    return formatDate; 
},