解决:My97DatePicker 日期插件引用在PHP文件中maxDate和minDate控制失效问题
Posted 纸上得来终觉浅,绝知此事要躬行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决:My97DatePicker 日期插件引用在PHP文件中maxDate和minDate控制失效问题相关的知识,希望对你有一定的参考价值。
开发环境:
语言:php
框架:ThinkPHP
问题:在引用插件My97DatePicker时,想实现:开始日期不能大于结束日期,结束时间不能小于开始时间
步骤一、查看文档官方文档http://www.my97.net/dp/demo/index.htm可以看到实现办法如下:
步骤二、按照文档说明,作用于自己代码中:
<input name="start_time" type="text" id="start_time" class="Wdate" onClick="WdatePicker({dateFmt:\'yyyy-MM-dd\',maxDate:\'#F{$dp.$D(\\\'end_time\\\')}\'})"/> <input name="end_time" type="text" id="end_time" class="Wdate" onClick="WdatePicker({dateFmt:\'yyyy-MM-dd\',minDate:\'#F{$dp.$D(\\\'start_time\\\')}\',maxDate:\'{$max_end_norm}\'})"/>
运行发现,maxDate和minDate控制总是失效
排查发现问题:
查看缓存Cache发现如下问题:
<input name="start_time" type="text" id="start_time" class="Wdate" onClick="WdatePicker({dateFmt:\'yyyy-MM-dd\',maxDate:\'#F<?php echo ($dp["$D(\'end_time\')"]); ?>\'})"/> <input name="end_time" type="text" id="end_time" class="Wdate" onClick="WdatePicker({dateFmt:\'yyyy-MM-dd\',minDate:\'#F<?php echo ($dp["$D(\'start_time\')"]); ?>\',maxDate:\'<?php echo ($max_end_norm); ?>\'})"/>
可以看到maxDate和minDate内容全部被当做PHP变量<?php echo ($dp["$D(\'end_time\')"]); ?>和<?php echo ($dp["$D(\'start_time\')"]); ?>编译输出了,而我们想要的结果是作为常量;
解决办法:
方法1.在标签的{
和$
之间增加一个空格,让php标签无效参考链接 (推荐方法)
例如:{$name} 修改成:{ $name}
方法2.改变默认的开始标记和结束标记 参考链接
\'TMPL_L_DELIM\'=>\'<{\', \'TMPL_R_DELIM\'=>\'}>\',
方法3.可以使用literal标签来防止模板标签被解析 参考链接
<literal>{$name}</literal>
以上自己遇到的问题及解决办法;
以上是关于解决:My97DatePicker 日期插件引用在PHP文件中maxDate和minDate控制失效问题的主要内容,如果未能解决你的问题,请参考以下文章
JQuery日历插件My97DatePicker日期范围限制