2016-09-20 19 views
-1

私はこの話題がどれほど有名なのか知っていますが、私の質問はもう少し複雑です。 私は文書を読むhere フランス語形式(dd/mm/yyyy)で日付を表示し、値を米国形式(yyyy-mm-dd)で保存したい。 また、月の初日であるstartDateを指定する必要があります。Bootstrap-datePickerで日付を書式設定するにはどうすればよいですか?

私は、この設定を試してみました:

$(document).ready(function() { 
 
    $('#datepicker').datepicker({ 
 
    format: { 
 
     language: 'fr', 
 
     toDisplay: function(date, format, language) { 
 
     return date.getUTCDate() + "/" + (date.getUTCMonth() + 1) + "/" + date.getUTCFullYear(); 
 
     }, 
 
     toValue: function(date, format, language) { 
 
     return new Date(date); 
 
     } 
 
    }, 
 
    //startDate: function(date) { 
 
    // return date.getUTCFullYear() + "-" + date.getUTCMonth() + "-01"; 
 
    //}, 
 
    autoclose: true, 
 
    todayHighlight: true, 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/css/bootstrap-datepicker3.css" rel="stylesheet" /> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/js/bootstrap-datepicker.js"></script> 
 

 

 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet" /> 
 
<input type="text" id="datepicker" />

しかし:

  • 表示値:本当にフランスのない形式... 2016年7月9日の代わりに、 07/09/2016
  • 開始日:動作しません。

誰でも私を喜ばせることができますか?

答えて

1

moment.jsを試してみてください。それは時間の書式設定ロジックがあり、軽量で使いやすく、ロケールのサポートもあります。 http://momentjs.com/

+0

私はこのライブラリを知りませんでした。それはいいようですが、私の場合、私はちょうど正しくbootstrap-datepickerを使う必要があると確信しています...しかし、私はどのように行うのか分かりません... – Cooxkie

+1

私は 'momentjs'を見ています;-) – Cooxkie

+1

MomentJsは本当にクールです:)私は与えられた日付から月の最初の日を取得する方法を見つけた:var firstDayOfMonth = moment (dp.val())。startOf( 'month'); – Cooxkie

0

値を取得して「/」に分割し、後で再結合します。

dateparts = datevalue.split("/"); 
d = dateparts[0]; 
m = dateparts[1]; 
y = dateparts[2]; 
newdate = y + "/" + m + "/" + d; 

その後、必要に応じて各部分を編集することができます。

0

ピッカーをローカライズする場合は、i18n docsに従うことができます。基本的には、ロケール固有の設定で追加のjsファイルをインポートしてから、languageオプションを指定する必要があります。これにより、表示形式を自動的にカスタマイズできます。

formatを変更する場合は、format: 'dd/mm/yyyy'を使用してください。 (例えば、月と日なしフランス語名)

あなたは、以下の例に示すようにヘルパー関数を使用することができ、希望YYYY-MM-DD形式に日付を変換するtoDisplaytoValueを必要としません。


startDateドキュメントがいるということを注意:文字列はformatで解析可能でなければならない

-のため、おそらくあなたの例のものは解析できません。

最後に、momentjsを使用してfirst day of month calculationformat conversionの両方を簡単に使用することをおすすめします。ここモーメントと日付ピッカーの国際化を使用した作業例があります:

$(document).ready(function() { 
 
    $('#datepicker').datepicker({ 
 
    language: 'fr', 
 
    autoclose: true, 
 
    todayHighlight: true, 
 
    startDate: moment().startOf('month').toDate() 
 
    }); 
 
    
 
    $('#btnGetDate').click(function(){ 
 
    var date = $('#datepicker').datepicker('getDate'); 
 
    var dateUsFormat = moment(date).format('YYYY-MM-DD'); 
 
    console.log(dateUsFormat); // date formatted in YYYY-MM-DD 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/css/bootstrap-datepicker3.css" rel="stylesheet" /> 
 

 
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.0/js/bootstrap-datepicker.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/locales/bootstrap-datepicker.fr.min.js"></script> 
 

 
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet" /> 
 
<input type="text" id="datepicker" /> 
 
<button id="btnGetDate" class="btn btn-primary">Get Date</button>

関連する問題