php 时间选择,PHP-在学说2中的日期之间选择条目

PHP-在学说2中的日期之间选择条目

我将因这个无法修复的最小错误而发疯。 我想在两天之间选择条目,下面的示例说明了我所有的失败:

选择1。

$qb->where('e.fecha > ' . $monday->format('Y-m-d'));

$qb->andWhere('e.fecha < ' . $sunday->format('Y-m-d'));

结果(0个条目):

SELECT r0_.id_reservacion AS id_reservacion0, r0_.fecha AS fecha1, r0_.cliente AS cliente2

FROM reservacion r0_

WHERE (r0_.fecha > 2012 - 07 - 16) AND (r0_.fecha < 2012 - 07 - 22)

选择2

$qb->add('where', 'e.fecha between 2012-01-01 and 2012-10-10');

结果(0个条目):

SELECT r0_.id_reservacion AS id_reservacion0, r0_.fecha AS fecha1, r0_.cliente AS cliente2

FROM reservacion r0_ WHERE r0_.fecha

BETWEEN 2012 - 01 - 01 AND 2012 - 10 - 10

这是我带有当前条目的表:

id fecha cliente

1 2012-07-16 00:00:00 2

2 2012-07-16 13:00:00 4

3 2012-07-22 23:00:00 4

编辑1

为了评估sql以免产生疑问,我运行了以下查询:

$qb->where('e.fecha > ' . $sunday->format('Y-m-d'));

结果(3个条目):

SELECT r0_.id_reservacion AS id_reservacion0, r0_.fecha AS fecha1, r0_.cliente AS cliente2

因此,看起来不是sql的问题。     从保留r0_     在r0_.fecha> 2012-07

4个解决方案

137 votes

您可以…

$qb->where('e.fecha BETWEEN :monday AND :sunday')

->setParameter('monday', $monday->format('Y-m-d'))

->setParameter('sunday', $sunday->format('Y-m-d'));

要么…

$qb->where('e.fecha > :monday')

->andWhere('e.fecha < :sunday')

->setParameter('monday', $monday->format('Y-m-d'))

->setParameter('sunday', $sunday->format('Y-m-d'));

MacDada answered 2020-02-06T14:24:25Z

32 votes

我相信这样做的正确方法是使用查询生成器表达式:

$now = new DateTime();

$thirtyDaysAgo = $now->sub(new \DateInterval("P30D"));

$qb->select('e')

->from('Entity','e')

->add('where', $qb->expr()->between(

'e.datefield',

':from',

':to'

)

)

->setParameters(array('from' => $thirtyDaysAgo, 'to' => $now));

[http://docs.doctrine-project.org/en/latest/reference/query-builder.html#the-expr-class]

编辑:此方法相对于此处任何其他答案的优点是它独立于数据库软件-您应该让Doctrine处理日期类型,因为它具有处理此类问题的抽象层。

例如,如果执行类似以'Y-m-d'形式添加字符串变量的操作,则该变量在转到MySQL以外的数据库平台时会中断。

Harry Mustoe-Playfair answered 2020-02-06T14:25:00Z

3 votes

编辑:请参阅其他答案以获得更好的解决方案

我提供的原始新手方法是(opt1):

$qb->where("e.fecha > '" . $monday->format('Y-m-d') . "'");

$qb->andWhere("e.fecha < '" . $sunday->format('Y-m-d') . "'");

和(opt2):

$qb->add('where', "e.fecha between '2012-01-01' and '2012-10-10'");

这样既快捷又容易,使原始海报立即生效。

因此,可以接受的答案。

根据评论,这是一个错误的答案,但这是一个容易犯的错误,因此,我将其作为“不可以做的事”留在这里。

azhrei answered 2020-02-06T14:25:42Z

1 votes

看看如何在参数中格式化日期$ jour。这取决于您使用的是expr()-> like还是expr()-> lte

$qb

->select('e')

->from('LdbPlanningBundle:EventEntity', 'e')

->where(

$qb->expr()->andX(

$qb->expr()->orX(

$qb->expr()->like('e.start', ':jour1'),

$qb->expr()->like('e.end', ':jour1'),

$qb->expr()->andX(

$qb->expr()->lte('e.start', ':jour2'),

$qb->expr()->gte('e.end', ':jour2')

)

),

$qb->expr()->eq('e.user', ':user')

)

)

->andWhere('e.user = :user ')

->setParameter('user', $user)

->setParameter('jour1', '%'.$jour->format('Y-m-d').'%')

->setParameter('jour2', $jour->format('Y-m-d'))

->getQuery()

->getArrayResult()

;

Laurent Lolo answered 2020-02-06T14:26:02Z

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

threadlocal线程_线程故事:Web应用程序中的ThreadLocal

threadlocal线程本周&#xff0c;我花了一些合理的时间来消除Web应用程序中的所有ThreadLocal变量。 原因是他们造成了类加载器泄漏&#xff0c;我们不能再适当地取消部署我们的应用程序。 取消部署应用程序后&#xff0c;当GC根目录继续引用应用程序对象时&#xff0c;将发生类…

java开发门禁指纹,指纹门禁

大兀人脸识别控制系统USB指纹仪DW9拓扑图(指纹为java系统直接采集、云或控制板直接比对&#xff0c;无需二次注册&#xff0c;人脸为htttp上传服务器或rtsp视频流比对方案)大兀活体指纹门禁采用BS架构&#xff0c;已集成进大兀人脸识别系统&#xff0c;如二次开发可直接调用jav…

使用Selenide进行有效的UI测试

等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕&#xff0c;我们都为下一年制定了计划。 我们希望所有问题都将在最后一年消失&#xff0c;在来年出现奇迹。 每个Java开发人员都梦想着创造一个奇迹&#xff0c;使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇…

android之seekbar

做了一个拖动滑块改变数值的demo 下附上代码: <SeekBar android:id"id/myseekbar" android:layout_width"match_parent" android:layout_marginTop"20dp" android:thumb"drawable/slider" android:layout_height&qu…

php 微信小程序 循环 多选,微信小程序实现多选功能

本文为大家分享了微信小程序实现多选功能的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下代码&#xff1a;{{num 1}}/{{quesyion.length}}{{question[num][0]}}A {{question[num][1]}}B {{question[num][2]}}C {{question[num][3]}}D {{question[num][4]}}正确答案…

今天在看慕课网的java学习路径

new对象是静态加载类 在编译时刻就需要加载所有可能使用的类 如果有有一个类没有 其他的类也无法使用 通过动态加载类可以解决这个问题 class for name 打印异常栈轨迹Stack Trace。说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方法 classforName //加载…

php+反序列化代码执行漏洞,PHP反序列化漏洞

0x001 漏洞产生原理在反序列化的过程中自动触发了某些魔术方法。未对用户输入的序列化字符串进行检测&#xff0c;导致攻击者可以控制反序列化过程&#xff0c;从而导致XSS、代码执行、文件写入、文件读取等不可控后果。0x002 漏洞触发条件一般只能通过代码审计的方式挖掘该漏洞…

java 应用程序 gui_Java GUI应用程序关闭陷阱

java 应用程序 gui最近&#xff0c;我遇到了一个或两个Java GUI应用程序在关闭时无法关闭的问题。 他们似乎是一个过程&#xff0c;消耗着计算机资源。 今天&#xff0c;我深入探究了问题的根源&#xff0c;这是一个我以前不曾意识到的棘手陷阱&#xff0c;所以我想我会分享一下…

php动态成本管理,网上审批系统环境下的动态目标成本管理

1.预测目标价格和销售量目标价格是根据市场可接受的价格范围、企业自身的竞争优势和企业的经营理念等因素来确定的。在确定目标价格的同时&#xff0c;需要确定在这种价格下企业的预计销售量&#xff0c;因为销售量影响生产量&#xff0c;生产量影响作业量&#xff0c;作业量影…

学习进度(第三周)

所花时间 9.5h 代码量 350行 博客量 2篇 了解到的知识点 Hadoop HBase数据库 转载于:https://www.cnblogs.com/yifengyifeng/p/6542224.html

Java中的值类型:为什么它们不可变?

值类型不必是不变的。 但是他们是。 在上一篇文章中&#xff0c;我讨论了Java中指针与引用之间的区别以及如何传递方法参数&#xff08;按值传递或按引用传递&#xff09;。 这些与Java中尚不存在的值类型密切相关&#xff08;尚未&#xff09;。 John Rose&#xff0c;Brian…

mac设置首页访问php,mac系统下php项目除了首页全访问不了

有网友反映mac配置apache的有问题&#xff0c;除了首页全都访问不了&#xff0c;小编找来了相关的解决办法&#xff0c;有需要的朋友可以来了解一下。httpd.conf配置文件中加载了mod_rewrite.so模块AllowOverride None 将None改为 AllDocumentRoot "/Library/WebServer/Do…

java filter 模式,Java设计模式----过滤器模式(挑三拣四)

过滤器模式描述拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器&#xff0c;并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相…

表单

表单本身也是DOM树 表单的输入框、下拉框等可以接收用户输入&#xff0c;所以用JavaScript来操作表单&#xff0c;可以获得用户输入的内容&#xff0c;或者对一个输入框设置新的内容。 HTML表单的输入控件主要有以下几种&#xff1a; 文本框&#xff0c;对应的<input type&q…

java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

参考文章1、先看一下未设置JVM参数的情况&#xff0c;默认情况下&#xff0c;没有设置任何Jvm参数。2、设置Jvm参数。配置参数&#xff1a;关于这些设置的JVM参数是什么意思&#xff0c;参考Jvm调优。-XX:MetaspaceSize128m (元空间默认大小)-XX:MaxMetaspaceSize128m (元空间最…

Git问题Everything up-to-date解决

Git问题Everything up-to-date解决 【自己的亲身错误体验】 我的上一篇博客&#xff0c;说了怎么上传一个项目到git远程上面。今天我写好一个小栗子&#xff0c;准备再次上传的时候。我依旧是放在我的F:\github\js- 这个和我的github上的远程仓库相同名称的文件中的 在这里空白…

java超出gc开销限制_超出了GC开销限制– Java堆分析

java超出gc开销限制这篇文章是我们原来的GC开销超出问题模式的延续。 正确的Java堆分析对于消除O​​utOfMemoryError&#xff1a;GC开销问题至关重要。 如果您不熟悉此Java HotSpot 1.6错误&#xff0c;建议您首先阅读有关此主题的第一篇文章 。 本文将为您提供一个示例程序和…

Java接口long类型精度丢失,解决前后端交互Long类型精度丢失问题

雪花算法ID&#xff0c;对应的后端Long类型&#xff0c;前端number类型&#xff0c;它们的精度不一样&#xff0c;导致精度丢失现象雪花算法得到的ID较长&#xff0c;传到前端后&#xff0c;精度丢失库中&#xff1a;23754851322302474后端&#xff1a;23754851322302474前端&a…

如何模拟Spring bean(版本2)

大约一年前&#xff0c;我写了一篇博客文章如何模拟Spring Bean 。 所描述的模式对生产代码几乎没有侵入性。 正如读者Colin在评论中正确指出的那样&#xff0c;基于Profile注释的间谍/模拟Spring bean是更好的选择。 这篇博客文章将描述这种技术。 我在工作中以及副项目中都成…

eclipse和jdk的版本问题,比如printf()出错

1.右键项目选中properties 2.Java Builder Path 》》》Libraries》》》选中JRE Syste Library[jre7]然后remove 3.Add Library》》》JRE Syetem Library》》》NEXT》》》Alternate JRE:选中最新的jie版本 4.Finish》》》OK&#xff01; 5.再在右键项目选中properties 》》》Ja…