当我尝试在addColumn中指定模式时,它不显示。我做错了什么?

data.addColumn({
  type: 'date',
  label: 'Date',
  pattern: "EE dd MMM yyyy"
});
data.addRow([new Date(2016, 02, 05)])


显示的值为Mar 5, 2016,这是默认格式,而我希望Sat 05 Mar 2016addColumn({pattern: "EE dd MMM yyyy"})中所指定

请参见https://jsfiddle.net/qpq3kvhr/3,其中number也存在相同的问题。

我在Google上搜索了addColumn(pattern)的有效示例,但没有找到它。

最佳答案

addColumn documententation指出:


  addColumn(type, opt_label, opt_id)
  要么
  addColumn(description_object)
  第二签名具有一个具有以下成员的单个对象参数:
  ...
  
  
  pattern-[可选,字符串]一个数字(或日期)格式的字符串,指定如何显示列值。
  


但这是错误的,或者至少是令人困惑的。 Constructor's JavaScript Literal data parameter的文档中对此有不同的解释。


  cols属性
  
  cols是一个对象数组,描述每个列的ID和类型。
  每个属性都是具有以下属性的对象
  (区分大小写):
  ...
  
  
  pattern [可选]数据源使用的字符串模式
  格式化数字,日期或时间列值。供参考
  只要;您可能不需要读取模式,并且它不是
  必须存在。 Google Visualization客户端不使用此
  值(它读取单元格的格式化值)。如果数据表具有
  来自数据源以响应带有format子句的查询,
  您在该子句中指定的模式可能会在
  这个值。
  


结论:您不能在dataTable或addColumn构造函数中指定自动应用的格式模式。而是将formatter应用于列。

var formatter = new google.visualization.DateFormat({pattern: "EE dd MMM yyyy"});
formatter.format(data, 0);


小提琴https://jsfiddle.net/qpq3kvhr/6/

10-06 08:16