解决: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控制失效问题的主要内容,如果未能解决你的问题,请参考以下文章

日期插件My97DatePicker

jsp日期插件My97DatePicker

My97DatePicker日历插件

JQuery日历插件My97DatePicker日期范围限制

my97datepicker插件日期值改变事件 等同于input的onchang()时间

my97datepicker日期控件的宽度高度如何设置呢?