如何解决散景表中的条件DateFormatter
我可以在Bokeh表中为日期格式化程序进行静态选择
TableColumn(field=xdata,title=xdata,formatter=DateFormatter(format="%a,%e %b %y")),
但是我想做些更动态的事情,如果距离当前时间少于几小时,则显示一天中的时间,否则显示完整的日期(天+时间)
其他问题似乎取决于条件,诸如此类,因此我找不到一个真正适合此问题的问题。
解决方法
我做这件事的丑陋JS如下
template="""
<%= (
function nameless()
{
function shortenDateTime(inputDate /* Date() */,threshold /*[seconds]*/) {
function farAway(present /* integer unit epoch */,past /* integer unit epoch */) {
if ( present - past > threshold*1000){
return true;
} else {
return false;
}
}
// get a new date (locale machine date time)
var now = new Date();
var now_epoch = now.getTime();
inputDate_epoch = inputDate.getTime();
date = inputDate.toDateString();
time = inputDate.toLocaleTimeString();
if (farAway(now_epoch,inputDate_epoch)) {
return date + ' ' + time;
} else {
return time;
}
};
var _date = new Date(value);
return shortenDateTime(_date)
}()
) %>;
"""
然后必须从HTMLTemplateFormatter
定义格式器
formater = HTMLTemplateFormatter(template=template)
并将其用于列的定义
TableColumn(field=xdata,width=22,title=xdata,formatter=formater),
我唯一剩下的问题与:
- 在输出
;
的末尾删除12:09:33;
- 真的有必要使用我对
nameless()
的定义所做的技巧吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。