我使用了Bootstrap4XPages datepicker工具。
但我有这个问题 在后端,日期字段始终在1月份设置 如果您在选择日历选择器后点击***设置为阅读模式***,您也可以尝试在线演示...在阅读模式下,您会看到错误的值。
例如,如果我选择12-02-2015(2015年2月12日) 节约价值总是...... 2015年1月12日......每个月都设定为1月......
你有什么建议吗?
Bootstrap4XPages更新的源代码控制源代码
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<!--
note: this date picker depends on a number of files: - bootstrap 3+ - bootstrap-datepicker
(https://github.com/eternicode/bootstrap-datepicker) - jquery
-->
<!-- js & css for plugin -->
<xp:this.resources>
<xp:script
src="/eternicode-datepicker-1.3/js/bootstrap-datepicker.js"
clientSide="true">
</xp:script>
<xp:styleSheet
href="/eternicode-datepicker-1.3/css/datepicker3.css">
</xp:styleSheet>
</xp:this.resources>
<xp:text
escape="true"
id="computedField1"
value="#{compositeData.fieldDataSource[compositeData.fieldName]}"
rendered="#{javascript:!compositeData.fieldDataSource.isEditable()}">
<xp:this.converter>
<xp:convertDateTime
type="date"
dateStyle="full"></xp:convertDateTime>
</xp:this.converter>
</xp:text>
<xp:div
styleClass="input-group date"
id="dateC"
rendered="#{javascript:compositeData.fieldDataSource.isEditable()}">
<xp:inputText
styleClass="form-control"
size="16"
id="inputDatum"
value="#{compositeData.fieldDataSource[compositeData.fieldName]}">
<xp:this.attrs>
<xp:attr
name="placeholder"
value="#{javascript:compositeData.dateFormat.toLowerCase()}">
</xp:attr>
</xp:this.attrs>
<xp:this.converter>
<xp:convertDateTime
type="date"
pattern="${compositeData.dateFormat}">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
<span
class="input-group-addon">
<i
class="glyphicon glyphicon-calendar"></i>
</span>
</xp:div>
<xp:scriptBlock
id="scriptBlock2">
<xp:this.value><![CDATA[
var options = {};
if ( null != "#{compositeData.options}" ) {
options = #{javascript:toJson(compositeData.options)};
}
options.format = "#{compositeData.dateFormat}";
$(function(){
//initialize date picker
x$('#{id:dateC}').datepicker(options);
});
]]></xp:this.value>
</xp:scriptBlock>
</xp:view>
这是XPages的代码
<xc:ccBS_DatePicker
dateFormat="dd-mm-yyyy"
fieldDataSource="#{document1}"
fieldName="data">
<xc:this.options><![CDATA[#{javascript:return {
daysOfWeekDisabled: "0,6",
autoclose: true,
todayBtn: "linked",
todayHighlight: true
}}]]></xc:this.options>
</xc:ccBS_DatePicker>
答案 0 :(得分:1)
问题是由Bootstrap4XPages演示数据库中的错误引起的:嵌入日期选择器的自定义控件上转换器的日期格式指定为dd-mm-yyyy
。应该是dd-MM-yyyy
(使用大写字母M):与Java SimpleDateFormat
类使用的标准相同。
演示数据库中使用的日期选择器是this,通过eternicode。在配置时使用小写的m指定日期格式。
我已更新演示数据库以处理此问题:在自定义控件中,您必须使用Java语法指定要使用的格式(例如&#39; dd-MM-yyyy&#39;) 。在我将选项传递给日期选择器的自定义控件中,我将案例修改为正确的格式。