我正在使用jquery日期选择器,并通过php日期('Y-m-D')函数设置日期。它们都为今天提供了不同的日期。 Jquery选择器填充字段的日期比php date()提前一天。这是jquery的功能。我需要jquery今天显示与php相同的日期。
<script type="text/javascript" charset="utf-8">
var $j = jQuery.noConflict();
$j(function()
{
// initialise the "Select date" link
$j('#date-pick')
.datePicker(
// associate the link with a date picker
{
createButton:false,
startDate: '01/01/1970',
endDate: (new Date()).asString()
//endDate:<?php echo date('y-m-d'); ?>
}
).bind(
// when the link is clicked display the date picker
'click',
function()
{
updateSelects($j(this).dpGetSelected()[0]);
$j(this).dpDisplay();
return false;
}
).bind(
// when a date is selected update the SELECTs
'dateSelected',
function(e, selectedDate, $td, state)
{
updateSelects(selectedDate);
}
).bind(
'dpClosed',
function(e, selected)
{
updateSelects(selected[0]);
}
).val(new Date().asString()).trigger('change');
var updateSelects = function (selectedDate)
{
var selectedDate = new Date(selectedDate);
if(selectedDate != "Invalid Date")
{
$j('#d').val(selectedDate.getDate());
$j('#m').val(selectedDate.getMonth()+1);
$j('#y').val(selectedDate.getFullYear());
}
}
// listen for when the selects are changed and update the picker
// default the position of the selects to today
var today = new Date();
updateSelects(today.getTime());
});
</script>
答案 0 :(得分:1)
jQuery使用客户端计算机的日期,而php使用服务器的日期。如果你没有在php中设置默认时区,它们基本上是不同的。看看这个: http://php.net/manual/en/function.date-default-timezone-set.php
您可以在PHP主目录中的php.ini文件中设置默认时区(例如PHP5.4)
至于在datepicker中使用服务器的日期:
快速谷歌搜索引导我:how to display server side dates in jquery datepicker? 基本上他们所做的就是根据当前时间戳创建一个新日期:
$timestamp = strtotime("2012-08-02");
minDate: new Date('<?php echo $timestamp; ?>');
答案 1 :(得分:1)
不要信任客户的日期和时间
可以随心所欲地改变这些值。
只需在建议中使用它们。
除了Javascript之外,还可以增强用户体验(即使其更具互动性)。但是在一天结束时,您将不得不拿起您未验证的部分并验证从客户端获得的数据