小编Kas*_*asi的帖子

如何在没有跳过的日期添加1个月即2月

可能重复:
PHP DateTime ::修改添加和减去月份

我有一个开始日期(即2011-01-30),并希望增加1个月.

问题在于定义一个月是什么.所以,如果我使用以下代码:

$d1 = DateTime::createFromFormat('Y-m-d H:i:s', '2011-01-30 15:57:57');
$d1->add(new DateInterval('P1M'));
echo $d1->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:2011-03-02 15:57:57

问题是,我需要它使用以下规则:

  • 如果我加1个月它只会在月份部分添加1并留下一天部分(2011-01-15将成为2011-02-15)
  • 如果当天不存在我们将结束的那天,我们将采取最后一天(2011-01-30将成为2011-02-28)

在PHP中有一个常见的功能可以做到这一点,还是我必须自己编写代码?也许我只是缺少一个参数或什么!?

php datetime

20
推荐指数
2
解决办法
4万
查看次数

从Facebook iOS SDK 3.2.1升级到3.5给我带来了FBCrypto的错误

安装新的sdk后,我清理了项目并构建它.它失败了这条消息:

架构i386的未定义符号:"_SecRandomCopyBytes",引自:FacebookSDK中的+ [FBCrypto randomBytes:](FBCrypto.o) - FacebookSDK中的[FBCrypto encrypt:additionalDataToSign:](FBCrypto.o)"_ kSecRandomDefault",引自:+ [ FBCrypto randomBytes:]在FacebookSDK(FBCrypto.o) - [FBCrypto加密:additionalDataToSign:]在FacebookSDK(FBCrypto.o)ld:符号未找到架构i386 clang:错误:链接器命令失败,退出代码1(使用-v看到调用)

同样的问题吗?解决方案?

facebook facebook-ios-sdk ios6 xcode4.6

9
推荐指数
2
解决办法
3723
查看次数

如何在PHP中使用codesniffer检测对象上的动态声明字段

在重构之后,我们在其中一个类中有类似的东西:

class FooBar
{
    // $foo was $bla before
    private $foo;

    public function setBlubbOnArrayOnlyOnce($value)
    {
        // $this->bla was forgotten during refactoring. Must be $this->foo
        if(!isset($this->bla['blubb'])) {
             $this->foo['blubb'] = $value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以最后$ this-> foo ['blubb']总是被设定,不仅一次.这是因为PHP的神奇方法.我们不希望它可以动态访问字段,所以我想我只是添加了一个代码不一致的规则.但我没有发现任何问题,并问我原因.

PHPStorm显示了一个动态通知的字段,但我想在部署周期中使用代码(或类似的东西)自动失败.

有人对此有所了解吗?有一个很好的规则吗?我应该写自己的,怎么样?或者禁用它是不好的做法?

免责声明:我们使用测试,但有时你会错过一些东西......首先要防止这种情况.另外,请不要想出覆盖魔法的方法.我不想在每个班级都有任何特质/抽象.

php codesniffer magic-methods getter-setter phpcodesniffer

8
推荐指数
1
解决办法
558
查看次数