草庐IT

datetime-generation

全部标签

php - 在 PHP 中使用 DateTime 作为单行代码

一个简短的问题,我真的找不到答案。在程序化PHP中我可以回显一个日期echodate('Y-m-d');?>在面向对象的PHP中我必须使用两行$now=newDateTime();echo$now->format('Y-m-d');是否可以在一行中完成此操作? 最佳答案 echo(newDateTime())->format('Y-m-d'); 关于php-在PHP中使用DateTime作为单行代码,我们在StackOverflow上找到一个类似的问题: ht

php - 为一天的开始和结束创建 DateTime 字符串

如果我有以下字符串:"2013-10-28"当我使用以下函数转换为DateTime时:new\DateTime("2013-10-28");它总是给我一个未设置时间的DateTime。我想要两个DateTime:一个标记一天的开始,意思是00:00:00另一个DateTime,它在同一天但在一天结束时23:59:59。给定上面的字符串,我该怎么做? 最佳答案 使用DateTime::setTime$d=new\DateTime("2013-10-28");$d->setTime(23,59,59);

php - 日期应该存储为 Datetime 还是 SQL 中的 int?

我将所有发帖日期存储在日期时间(0000-00-0000:00:00)中。我看到phpBB、punBB和所有流行的论坛都以int格式存储日期?什么更好? 最佳答案 如果您将日期存储为INT,那么连接到您的数据库的每个应用程序或工具都必须知道如何将该INT转换为有意义的东西。我建议坚持使用适合数据的数据类型,除非您的特定RDBMS对特定数据类型存在严重缺陷。还有一个问题需要考虑...如果您将它们存储为INT,那么您也将无法访问许多特定于日期的函数,并且必须自己编写它们。例如,返回特定日期的日期名称(星期一、星期二等)。

php - Symfony2 : DateTime object not working

我正在使用DateTime对象,但在获取特定日期的事件时遇到了这个问题。在Controller中我执行以下查询:$date=new\DateTime('today');$activity=$em->getRepository('MyBundle:myEntity')->findOneBy(array('activity_date'=>$date));这个查询的结果是null,但是当我这样定义参数date时:$date=new\DateTime('Wednesday,‎January‎14,‎2015');我得到了与这个日期匹配的事件。为什么today不起作用?

php - 确定 DateTime 是否落在 DateInterval 上

我正在尝试确定DateTime是否与可能出现的DateInterval完全一致。我使用的时间间隔需要考虑“下个月的第N天”类型的格式规范,我不确定在这些条件下这样的事情是否可行。我的基本想法是反转DateInterval,将其应用于原始DateTime的克隆,将其恢复原样,再次应用,然后检查是否两个DateTime实例相等。如果是这样,它恰好发生在时间间隔上:publicstaticfunctiondateFallsOnPeriod(DateTime$date,DateInterval$interval){$compare=clone$date;//inverttheperiod,ap

PHP 问题 : password_hash function is not able to generate a salt

我正在创建一个用户注册服务提供商,我正在使用password_hash函数来散列提供的用户密码。以下是用于创建散列字符串的代码部分:publicfunctiongenerateHash($string){returnpassword_hash($string,PASSWORD_BCRYPT);}正如我从PHP手册中了解到的那样,我们不应该生成我们的盐,而是让password_hash函数来处理它以提高安全性。但是,当我尝试创建新用户时,我收到以下警告:Warning:password_hash():Unabletogeneratesalt应用程序创建了用户,但由于上述问题,不会生成哈希

PHP DateTime 时区 - 构造函数与 Setter 方法

当使用PHPDateTime类并尝试设置DateTimeZone时,我会根据设置方式得到不同的结果:使用DateTime::__construct或使用DateTime::setTimezone方法。这是一个例子:$date='2014-08-01'$dateTimeOne=newDateTime($date,newDateTimeZone('America/Los_Angeles'));echo$dateTimeOne->format('Y-m-d\TH:i:sP');//2014-08-01T00:00:00-07:00$dateTimeTwo=newDateTime($date)

php - DateTime::modify 和 DST 开关

使用DateTime::modify在DST边界上添加一个小时会导致它跳过一个小时。例如$d=newDateTime('2015-11-0112:00:00AM',newDateTimeZone('America/Vancouver'));$d->modify('+1hour');//1AM$d->modify('+1hour');//2AM$d->modify('+1hour');//3AM我想看到两次“凌晨1点”(然后“凌晨2点”),因为时间倒退一个小时。我怎样才能得到这种行为? 最佳答案 是abug.(credit)要解决此问

php - 对 "data output stream"使用 php yield/Generator::send()

我知道yield可用于创建数据迭代器,例如从CSV文件中读取数据。functioncsv_generator($file){$handle=fopen($file,"r");while(!feof($handle)){yieldfgetcsv($file);}fclose($file);}但是Generator::send()方法建议我可以对顺序写入执行相同的操作,而不是读取。例如我想使用这样的东西:functioncsv_output_generator($file){$handle=fopen('file.csv','w');while(null!==$row=yield){fpu

php - 如何将 ISO8601 TSQL DATETIME 参数与 PDO 绑定(bind)?

看来PDO有问题ISO8601格式化的时间戳。我正在使用Microsoft®ODBCDriver13(Preview)forSQLServer®从运行PHP7.0.8的64位Ubuntu16.04进行连接这是我的简单表格:CREATETABLEdtest("stamp"DATETIME);作品:$pdoDB=newPDO('odbc:Driver=ODBCDriver13forSQLServer;Server='.DATABASE_SERVER.';Database='.DATABASE_NAME,DATABASE_USERNAME,DATABASE_PASSWORD);$pdoDB-