我肯定遗漏了一些显而易见的东西,但似乎无法找到从TimeDate字段的值中获取SugarBean对象的方法。
假设我在这种电话中得到了一个明确的线索:
$lead = BeanFactory::retrieveBean('Leads', "18bfc69e-8cd4-11e7-ad08-000c29b1a36e");那么对此的任何呼吁:
$lead->date_entered将返回一个字符串值:"2017-08-29 16:05" (注意没有秒)。
因此,例如,如果我试图使用这样的值来创建一个SugarTimeDate:
$TimeDate = new TimeDate();
$SugarTimeDate = $TimeDate->fromDb($lead->date_entered);它将返回false,因为提供给fromDb()的值格式不正确(秒数丢失)。
当查看带有蟾蜍的SQL表时,我可以看到,这些信息以DateTime的形式有效地存储在数据库中,其值为08/29/2017 16:05:56。但是SugarBean对象以文本的形式提供了一种不完全的格式。
那么,如何从给定的字段(理想情况下作为对象)中的字段中获得有效的SugarTimeDate、TimeDate或DateTime?
我进行了搜索,我找到的所有示例都是关于从现在开始创建一个新的date对象,将其设置为SugarBean中的某个字段,但没有一个从现有的datetime字段中设置日期时间字段。
任何暗示都将不胜感激。
发布于 2018-02-23 15:31:12
通过四处游玩,在帕特里克McQueen的帮助下,有两种方法可以获得字段的有效日期值。
我找到的第一个解决方案是在需要的字段上选择一个SugarQuery,然后返回完整的日期信息,因此"2017-08-29 16:05:56"。有点过火了,但这做得很好。
Patrick提出的另一个解决方案是使用来自bean对象的fetcher_row数组,这也将返回完整的日期信息。所以:
$lead->fetched_row['date_entered']威尔也会返回"2017-08-29 16:05:56"。
因此,在任何情况下都需要一个有效日期(“往返”,其中包含一个get,或者某种同步要求),fetched_row[]是解决方案,对字段$bean->field的“直接”调用是绝对避免的。
发布于 2018-02-22 14:40:25
我不完全清楚您想要完成什么(请参阅我的评论),但我猜想您需要的是fromUser()函数,即
$SugarTimeDate = $TimeDate->fromUser($lead->date_entered);原因是Sugar在调用代码时为GUI准备数据(包括根据用户首选项格式化日期)。这包括去掉秒。执行上面的fromUser()函数将根据当前用户配置的日期格式返回一个SugarDateTime对象,其中包含一个完整的日期字符串,作为" date“属性。反过来,可以在其他地方使用这一标准格式来处理这一问题。
https://stackoverflow.com/questions/48916955
复制相似问题