我在 smarty tpl 文件中使用输入字段元素和 jquery datepicker,如下所示
MySmarty.tpl:
...
<input type="text" id="date_test" />
<script type="text/javascript">
{literal}
$(document).ready(function(){
$('#date_test').datepicker({dateFormat: 'yy-mm-dd'
}).datepicker($.datepicker.regional['fa'])
});
{/literal}</script>
...
用户从我的区域日期选择器中选择一个日期,例如 1393-05-21
并将其保存到数据库中。
我需要将转换后的公历日期2014-08-12
保存到数据库中。
在本例中:select
和 show
区域日期正确,但save
不正确。
所以我更改了如下代码:
<input type="text" id="date_test" />
<script type="text/javascript">
{literal}
$(document).ready(function(){
$('#date_test').datepicker({dateFormat: 'yy-mm-dd',
onSelect: function(dateStr, inst) {
var date = new gregorian_date(inst.selectedYear, inst.selectedMonth, inst.selectedDay);
$(this).val(date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate());
}
}).datepicker($.datepicker.regional['fa'])
});
{/literal}</script>
问题是:它在框字段中显示公历日期值。 应该是这样的:
实际值(value):2014-08-12
显示值(value):1393-05-21
在这种情况下:选择
区域日期和保存
是正确的,但显示
不正确。
注释:gregorian_date
是一个自定义函数
最佳答案
日期选择器提供a method设置日期值。尝试一下:
$('#date-test').datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(value, dp) {
var gregDate = gregorian_date(dp.selectedYear, dp.selectedMonth, dp.selectedDay);
$('#date-test').datepicker('setDate', gregDate);
}
});
这里有一个 fiddle 来演示:
http://jsfiddle.net/klenwell/jqadkmud/3/
请注意:更新值后,更改用户的日期值很快就会变得困惑。在另一个字段中列出公历日期可能更有意义。
例如:
关于javascript - 选择并显示区域 jquery 日期选择器,但保存为转换后的公历日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258491/