Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP上的jQuery datepicker convert to date()_Php_Date_Jquery Ui Datepicker - Fatal编程技术网

PHP上的jQuery datepicker convert to date()

PHP上的jQuery datepicker convert to date(),php,date,jquery-ui-datepicker,Php,Date,Jquery Ui Datepicker,我有一个这样保存日期的脚本 $date = date('i')+50; 当我将其存储在数据库中时,我得到了类似于1382851302的东西,它非常适合使用>或对过去和未来进行比较,您的变量$iniciopub的值为1970-01-01,因为strotime返回false: 看一看。如果你说你在$\u POST中有00/00/0000这样的格式,那么strotime会告诉你这是美国的月、日和年mm/dd/yyyy,就像它所说的那样 如果输入的格式00/00/0000为dd/mm/yyyy,则最简

我有一个这样保存日期的脚本

$date = date('i')+50;
当我将其存储在数据库中时,我得到了类似于1382851302的东西,它非常适合使用>或对过去和未来进行比较,您的变量$iniciopub的值为1970-01-01,因为strotime返回false:

看一看。如果你说你在$\u POST中有00/00/0000这样的格式,那么strotime会告诉你这是美国的月、日和年mm/dd/yyyy,就像它所说的那样

如果输入的格式00/00/0000为dd/mm/yyyy,则最简单的方法是使用或替换“/”、“-”、“dd/mm/yyyy”;使其成为欧洲日期格式dd mm yyyy

问题更新

这个代码是错误的:

$iniciodate = str_replace("/",",",$_POST['iniciopub']);
$iniciopub = mktime(0,0,0,$iniciodate);
有6个参数,现在不重要了。您不能像那样使用$iniciodate,因为您只在mktime函数中输入第4个参数,而不是您可能认为的第4、第5和第6个参数

mktime0,0,0,'10,272013';与mktime0,0,0,10,272013不同;或'mktime0,0,0,'10','27','2013';。日期10/27/2013和10/31/2013返回相同的时间戳的原因是,在这两种情况下,当您将字符串10,272013和10,312013转换为整数第四个参数时,您会得到10。见:

因此,如果您调用mktime,您的调用是相同的,如:

如果在put error_reporting-1上有错误_报告;在php文件中,您会看到,在调用mktime0,0,0$iniciodate之后,您会收到通知:

注意:在file.php的第XX行遇到一个格式不正确的数值

由于2013年10月27日和2013年10月31日是标准的美国日期格式,您可以使用strotime而不是mktime将日期转换为时间戳:

var_dump( strtotime('10/27/2013') ); # int(1382832000)
var_dump( strtotime('10/31/2013') ); # int(1383177600)
您在评论中问:如果我将日期存储为dd-mm-yyyy。如何将该日期与其他日期进行比较。作为时间戳存储是否很好

是的,您可以将它们存储为时间戳。但我已经很久没有在代码中使用时间戳了,我将日期存储为YYYY-MM-DD;在RDBMS中,这是一种最佳实践。

您的变量$iniciopub的值为1970-01-01,因为strotime返回false:

看一看。如果你说你在$\u POST中有00/00/0000这样的格式,那么strotime会告诉你这是美国的月、日和年mm/dd/yyyy,就像它所说的那样

如果输入的格式00/00/0000为dd/mm/yyyy,则最简单的方法是使用或替换“/”、“-”、“dd/mm/yyyy”;使其成为欧洲日期格式dd mm yyyy

问题更新

这个代码是错误的:

$iniciodate = str_replace("/",",",$_POST['iniciopub']);
$iniciopub = mktime(0,0,0,$iniciodate);
有6个参数,现在不重要了。您不能像那样使用$iniciodate,因为您只在mktime函数中输入第4个参数,而不是您可能认为的第4、第5和第6个参数

mktime0,0,0,'10,272013';与mktime0,0,0,10,272013不同;或'mktime0,0,0,'10','27','2013';。日期10/27/2013和10/31/2013返回相同的时间戳的原因是,在这两种情况下,当您将字符串10,272013和10,312013转换为整数第四个参数时,您会得到10。见:

因此,如果您调用mktime,您的调用是相同的,如:

如果在put error_reporting-1上有错误_报告;在php文件中,您会看到,在调用mktime0,0,0$iniciodate之后,您会收到通知:

注意:在file.php的第XX行遇到一个格式不正确的数值

由于2013年10月27日和2013年10月31日是标准的美国日期格式,您可以使用strotime而不是mktime将日期转换为时间戳:

var_dump( strtotime('10/27/2013') ); # int(1382832000)
var_dump( strtotime('10/31/2013') ); # int(1383177600)
您在评论中问:如果我将日期存储为dd-mm-yyyy。如何将该日期与其他日期进行比较。作为时间戳存储是否很好


是的,您可以将它们存储为时间戳。但我已经很久没有在代码中使用时间戳了,我将日期存储为YYYY-MM-DD;在RDBMS中,这是一种最佳实践。

在PHP中不转换为mktime的更好方法-将数据保存为mktime:

function mdf_init_calendars() {
jQuery(".mdf_calendar").datepicker(
        {
            showWeek: true,
            firstDay: 1,
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            onSelect: function(dateText, self) {
                var date = new Date(parseInt(self.currentYear, 10), parseInt(self.currentMonth, 10), parseInt(self.currentDay, 10), 23, 59, 59);
                var mktime = (date.getTime() / 1000);
                jQuery(this).prev('input[type=hidden]').val(mktime);
            }
        }
);
jQuery(".mdf_calendar").datepicker("option", "dateFormat", 'dd-mm-yy');
jQuery(".mdf_calendar").datepicker("option", "showAnim", 'fadeIn');
//+++
jQuery(".mdf_calendar").each(function() {
    var mktime=jQuery(this).prev('input[type=hidden]').val();
    var date = new Date(mktime*1000);
    jQuery(this).datepicker('setDate', new Date(date));
});
}

您将数据保存在隐藏的输入中,并在页面加载时将其加载,所以在PHP代码中,您可以始终获得mktime,而不需要考虑数据格式,您可以在js中设置它,就像您在示例内联中所希望的那样 PHP:


在PHP中不转换为mktime的更好方法-已将数据另存为mktime:

function mdf_init_calendars() {
jQuery(".mdf_calendar").datepicker(
        {
            showWeek: true,
            firstDay: 1,
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            onSelect: function(dateText, self) {
                var date = new Date(parseInt(self.currentYear, 10), parseInt(self.currentMonth, 10), parseInt(self.currentDay, 10), 23, 59, 59);
                var mktime = (date.getTime() / 1000);
                jQuery(this).prev('input[type=hidden]').val(mktime);
            }
        }
);
jQuery(".mdf_calendar").datepicker("option", "dateFormat", 'dd-mm-yy');
jQuery(".mdf_calendar").datepicker("option", "showAnim", 'fadeIn');
//+++
jQuery(".mdf_calendar").each(function() {
    var mktime=jQuery(this).prev('input[type=hidden]').val();
    var date = new Date(mktime*1000);
    jQuery(this).datepicker('setDate', new Date(date));
});
}

您将数据保存在隐藏的输入中,并在页面加载时将其加载,所以在PHP代码中,您可以始终获得mktime,而不需要考虑数据格式,您可以在js中设置它,就像您在示例内联中所希望的那样 PHP:


或者如果我将日期存储为dd-mm-yyyy。如何将该日期与其他日期进行比较。我把日期存储为时间戳做得好吗?@MonchoChavez:np-mate,很高兴我能帮上忙。或者如果我把日期存储为dd-mm-yyyy。如何将该日期与其他日期进行比较。我把时间戳存储好了吗?@MonchoChavez:np伙计,很高兴我能帮上忙。
$v = '10,27,2013'; var_dump( (int)$v ); # int(10)
$v = '10,31,2013'; var_dump( (int)$v ); # int(10)
var_dump(  mktime(0,0,0,10) ); # int(1382832000)
var_dump( strtotime('10/27/2013') ); # int(1382832000)
var_dump( strtotime('10/31/2013') ); # int(1383177600)
function mdf_init_calendars() {
jQuery(".mdf_calendar").datepicker(
        {
            showWeek: true,
            firstDay: 1,
            changeMonth: true,
            changeYear: true,
            showButtonPanel: true,
            onSelect: function(dateText, self) {
                var date = new Date(parseInt(self.currentYear, 10), parseInt(self.currentMonth, 10), parseInt(self.currentDay, 10), 23, 59, 59);
                var mktime = (date.getTime() / 1000);
                jQuery(this).prev('input[type=hidden]').val(mktime);
            }
        }
);
jQuery(".mdf_calendar").datepicker("option", "dateFormat", 'dd-mm-yy');
jQuery(".mdf_calendar").datepicker("option", "showAnim", 'fadeIn');
//+++
jQuery(".mdf_calendar").each(function() {
    var mktime=jQuery(this).prev('input[type=hidden]').val();
    var date = new Date(mktime*1000);
    jQuery(this).datepicker('setDate', new Date(date));
});