首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend_Date addMonth添加更多的参数

Zend_Date addMonth添加更多的参数
EN

Stack Overflow用户
提问于 2014-10-01 21:05:20
回答 1查看 592关注 0票数 0

因此,我有如下代码:

代码语言:javascript
复制
$dateBase = $amount->getDate();
for ($i = 1; $i <= 3; $i++) {
    $installment = new Installment();
    if ($i == 1) {
        //do stuff
    } else {
        var_dump('1-'.$dateBase->toString());
        $dateBase->addMonth(1);
        var_dump('2-'.$dateBase->toString());
    }
    $installment->setDate($dateBase);
    $dataBase = clone $dataBase;
}

产出如下:

字符串(25)“2014年10月1日12:00:00 AM”

字符串(25)“2014年12月1日中午12时:00”

字符串(25)“2014年12月1日12:00:00 AM”

字符串(26)“2015年1月2日至31日上午12:00”

您可以看到,在第二个循环中(当$i=2),他只增加了一个月的整数

EDIT1:做更多的研究,我认为有时区错误,我改变了代码,因为它遵循

代码语言:javascript
复制
$date = new Zend_Date('10/1/2014');
var_dump($date);
$date->addMonth(1);
var_dump($date, $dateBase);
$dateBase->addMonth(1);
var_dump($dateBase); 

产出如下:

代码语言:javascript
复制
object(Zend_Date)#3754 (8) {  
  ["_locale":"Zend_Date":private]=>  
  string(2) "en"  
  ["_fractional":"Zend_Date":private]=>  
  int(0)  
  ["_precision":"Zend_Date":private]=>  
  int(3)  
  ["_unixTimestamp":"Zend_Date_DateObject":private]=>  
  string(10) "1412114400"  
  ["_timezone":"Zend_Date_DateObject":private]=>  
  string(12) "Europe/Paris"  
  ["_offset":"Zend_Date_DateObject":private]=>  
  int(-3600)  
  ["_syncronised":"Zend_Date_DateObject":private]=>  
  int(0)  
  ["_dst":protected]=>  
  bool(true)  
}  
object(Zend_Date)#3754 (8) {  
  ["_locale":"Zend_Date":private]=>  
  string(2) "en"  
  ["_fractional":"Zend_Date":private]=>  
  int(0)  
  ["_precision":"Zend_Date":private]=>  
  int(3)  
  ["_unixTimestamp":"Zend_Date_DateObject":private]=>  
  int(1414796400)  
  ["_timezone":"Zend_Date_DateObject":private]=>  
  string(12) "Europe/Paris"  
  ["_offset":"Zend_Date_DateObject":private]=>  
  int(-3600)  
  ["_syncronised":"Zend_Date_DateObject":private]=>  
  int(0)  
  ["_dst":protected]=>  
  bool(true)  
}  

object(Zend_Date)#3755 (8) {  
    ["_locale":"Zend_Date":private]=>  
    string(2) "en"  
    ["_fractional":"Zend_Date":private]=>  
  int(0)  
  ["_precision":"Zend_Date":private]=>  
  int(3)  
  ["_unixTimestamp":"Zend_Date_DateObject":private]=>  
  string(10) "1412114400"  
  ["_timezone":"Zend_Date_DateObject":private]=>  
  string(9) "Etc/GMT-2"  
  ["_offset":"Zend_Date_DateObject":private]=>  
  int(-7200)  
  ["_syncronised":"Zend_Date_DateObject":private]=>  
  int(0)  
  ["_dst":protected]=>  
  bool(true)  
}  

object(Zend_Date)#3755 (8) {  
  ["_locale":"Zend_Date":private]=>  
  string(2) "en"  
  ["_fractional":"Zend_Date":private]=>  
  int(0)  
  ["_precision":"Zend_Date":private]=>  
  int(3)  
  ["_unixTimestamp":"Zend_Date_DateObject":private]=>  
  string(10) "1417384800"  
  ["_timezone":"Zend_Date_DateObject":private]=>  
  string(9) "Etc/GMT-2"  
  ["_offset":"Zend_Date_DateObject":private]=>  
  int(-7200)  
  ["_syncronised":"Zend_Date_DateObject":private]=>  
  int(0)  
  ["_dst":protected]=>  
bool(true)  
}  

您可以看到,$date和$dataBase日期没有区别,只是时区,但是当我们将两个时区相加一个月时,它们的反应是不同的,$dateBase是额外的一个月

EN

回答 1

Stack Overflow用户

发布于 2014-10-02 09:14:50

ZendFramework1.12文档如下所示:

例如,,当添加一个月到1月31日时,熟悉的人预计2月28日的结果。另一方面,熟悉Excel和OpenOffice的人士预计3月3日将成为结果。只有在结果月份没有日期的情况下才会发生问题,该日期设置在原来的日期中。

如果您不知道这个链接,请查看此链接:

http://framework.zend.com/manual/1.12/en/zend.date.overview.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26150647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档