2017-02-13 6 views
0

質問の短いバージョンでは、モデルの日付フィールドエントリの特定の部分だけを表示する方法がありますか?日付エントリの別々の部分をリストする方法

例:エントリとして02/13/2017を入力しますが、別のページには1日、1か月または1年しか表示されません。全部ではありません。

長く説明します。

私はタイムラインを作るためにGoogle charts scriptsee previous question)との危機に次のコードを使用しています:

function showChart(widget){ 
    google.charts.load('current', {'packages':['timeline']}); 
    function drawChart() { 
     var container = widget.getElement(); 
     var chart = new google.visualization.Timeline(container); 
     var dataTable = new google.visualization.DataTable(); 
     dataTable.addColumn({ type: 'string', id: 'President' }); 
     dataTable.addColumn({ type: 'date', id: 'Start' }); 
     dataTable.addColumn({ type: 'date', id: 'End' }); 
     dataTable.addRows([ 
      [ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ], 
      [ 'Adams',  new Date(1797, 2, 4), new Date(1801, 2, 4) ], 
      [ 'Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]); 
     chart.draw(dataTable); 
    } 
    google.charts.setOnLoadCallback(drawChart); 
} 

私が追加した場合は/私は私のモデルからのデータを持つ行のラベルを置き換えることができる変数を定義。例:RoomName

function showChart(widget){ 
     google.charts.load('current', {'packages':['timeline']}); 
     function drawChart() { 
      var container = widget.getElement(); 
      var chart = new google.visualization.Timeline(container); 
      var dataTable = new google.visualization.DataTable(); 
      var RoomName = app.datasources.TestModel.item.RoomName; 
      dataTable.addColumn({ type: 'string', id: 'President' }); 
      dataTable.addColumn({ type: 'date', id: 'Start' }); 
      dataTable.addColumn({ type: 'date', id: 'End' }); 
      dataTable.addRows([ 
       [ 'RoomName', new Date(1789, 3, 30), new Date(1797, 2, 4) ], 
       [ 'Adams',  new Date(1797, 2, 4), new Date(1801, 2, 4) ], 
       [ 'Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]); 
      chart.draw(dataTable); 
     } 
     google.charts.setOnLoadCallback(drawChart); 
    } 

私はしかし、新しい日付のオプションが年、月、日は、上記の例(3つの変数に分かれており、チェックインと同じことを行うと日付をチェックアウトしたいと思います:新しい日付( 1789、3、30)。私はちょうどapp.datasources.TestModel.item.CheckInを使用することはできませんので。

は私がapp.datasources.TestModel.item.CheckIn(年に作るのAppを伝えることができる方法はあります)、app.datasources.TestModel.item.CheckIn(月)、app.datasources.TestModel.item.CheckIn(日)?

ありがとうございました!

+0

が、私は日付の変圧器を使用することをお勧めします全く同じように動作しますhttps://developers.google.com/appmaker/scripting/api/transformers#formatDate、スクリプトを使用して値を設定している場合は、列のdescription-pattern(https://developers.google.com/chart/interactive/docs/reference#DataTable_addColumn)に3番目のプロパティを追加してみてください。 –

答えて

1
あなたのモデルに日付を格納する場合は、 date.getYear()+1900で、Javascriptを使用してその成分に日付を分割することができます

date.getMonth()+1date.getDate()

しかし、そうする理由はありません、チャートAPIによって受け入れられた日付です通常の日付は、特定の形式で表示されているからといって、同じことをしなければならないわけではありません。 startDateendDateがあなたのモデルから来る

dataTable.addRows([ 
       [ 'RoomName', startDate, endDate ], 

あなたはバインディングを使用している場合

+0

トニーありがとう! –

+0

もう1つ質問:startDateとendDateオプションについては、それらをフィルタリングしてRoom1のstartDateを表示し、Room2のstartDateなどを表示する方法はありますか?私はもともと新しいデータソースを作成し、RoomNameをフィルタリングするためにクエリを使用するつもりでしたが、startDate/endDateのデータソースがHTMLウィジェットと異なるため、動作しないことに気付きました。それは理にかなっていますか? –

関連する問題