Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 日历脚本设置的日期不正确(天减一)?_Php_Javascript_Forms_Date_Calendar - Fatal编程技术网

Php 日历脚本设置的日期不正确(天减一)?

Php 日历脚本设置的日期不正确(天减一)?,php,javascript,forms,date,calendar,Php,Javascript,Forms,Date,Calendar,我使用Jason Moon允许用户设置事件的日期。虽然这在一年和一个月内都很好,但我在设置正确的日期时遇到了问题。它一致地将事件日期设置为用户选择的前一天;即使这意味着回到上个月(8月1日变为7月31日),也会发生这种情况。我搞不懂这是为什么或者是怎么回事 客户端代码为: DateInput('publicationDate',true,“yyyyy-MM-DD”,“publicationDate?”)。date(“Y-m-d”,“$results['article]->publication

我使用Jason Moon允许用户设置事件的日期。虽然这在一年和一个月内都很好,但我在设置正确的日期时遇到了问题。它一致地将事件日期设置为用户选择的前一天;即使这意味着回到上个月(8月1日变为7月31日),也会发生这种情况。我搞不懂这是为什么或者是怎么回事

客户端代码为:

DateInput('publicationDate',true,“yyyyy-MM-DD”,“
publicationDate?”)。date(“Y-m-d”,“$results['article]->publicationDate)。”:“?>)

而我能想象的导致此错误的唯一服务器端代码是:

// Parse and store publication date
if ( isset( $params['publicationDate'] ) ) {
        $publicationDate = explode ( '-', $params['publicationDate'] );
        if ( count( $publicationDate ) == 3 ) {
            list ($y, $m, $d) = $publicationDate;
            $this->publicationDate = mktime(0, 0, 0, $m, $d, $y);
        }
    }

有人知道这是什么原因吗?它是否可能与我在配置文件(美国/多伦多)中设置的时区有关?

如果是,则可能是
月份的问题,解决方案如下:

getMonth
返回的值是一个介于0和11之间的整数。0对应于1月,1对应于2月,依此类推

因此,要获得当前月份,您始终需要编写
+1

像这样

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1;//January is 0!

尝试将mktime中的时间设置为中午或其他时间,而不是00:00:00——无论如何,您都应该明确声明时区,这是一种良好的做法。如果它始终是一天,您肯定可以按照@diEcho的建议在mktime语句中执行$d+1(但您说是日期,而不是月份,我相信日期是1索引的,而不是0-但是如果它始终是错误的,您可以使它始终是固定的)。

脚本代码看起来不像有效的javascript。你在客户端得到了什么?抱歉,忘了转义php标记-谢谢。谢谢,我将mktime设置为中午,工作正常!你知道为什么吗?mktime()和date()对日与日之间的界限有不同的解释吗?是的,没错-我看到23:59:59与00:00:00的表现不同-我只是觉得中午是完全明确的,不可能被误解,无论你的环境如何想。:)谢谢,但是这个月显示的很好,我使用PHP而不是JavaScript来获取和设置这个月。