我的目的是转换以下日期
$newDate= Carbon::createFromFormat('d/m/y H:m:s', $originalDate);
到这个
var_dump($newDate->toDateTimeString())
我尝试了php的典型日期格式功能以及Carbon ......
像这样的事情2019-03-20 13:00:55
在这种情况下
/dir/biserver-ce/start-pentaho.sh
/biserver-ce/tomcat/logs/pentaho.log
会带来odooadmin@srv0015:/opt/biserver-ce/tomcat/logs$ cat pentaho.log
2017-05-02 10:58:30,252 ERROR
[org.apache.jackrabbit.core.RepositoryImpl] Failed to initialize
workspace 'default' javax.jcr.RepositoryException: Unable to
initialize query handler:
org.apache.jackrabbit.core.query.lucene.SearchIndex@7ac41a30 at
org.apache.jackrabbit.core.config.RepositoryConfigurationParser$1.getQueryHandler(RepositoryConfigurationParser.java:658)
at
org.apache.jackrabbit.core.config.RepositoryConfig.getQueryHandler(RepositoryConfig.java:1037)
... Caused by: java.io.EOFException at
java.io.DataInputStream.readInt(DataInputStream.java:392) at
org.apache.jackrabbit.core.query.lucene.IndexInfos.read(IndexInfos.java:303)
at
org.apache.jackrabbit.core.query.lucene.IndexInfos.<init>(IndexInfos.java:107)
at
org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:253)
at
org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:555)
at
org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHandler.java:78)
at
org.apache.jackrabbit.core.config.RepositoryConfigurationParser$1.getQueryHandler(RepositoryConfigurationParser.java:655)
... 220 more
2017-05-02 10:58:30,263 ERROR
[org.apache.jackrabbit.core.RepositoryImpl] Unable to start
repository, forcing shutdown... 2017-05-02 10:58:30,543 ERROR
[org.apache.jackrabbit.core.RepositoryImpl] failed to start
Repository: Unable to initialize query handler:
org.apache.jackrabbit.core.query.lucene.SearchIndex@7ac41a30
javax.jcr.RepositoryException: Unable to initialize query handler:
org.apache.jackrabbit.core.query.lucene.SearchIndex@7ac41a30 at
org.apache.jackrabbit.core.config.RepositoryConfigurationParser$1.getQueryHandler(RepositoryConfigurationParser.java:658)
...
Caused by: java.io.EOFException at
java.io.DataInputStream.readInt(DataInputStream.java:392) at
org.apache.jackrabbit.core.query.lucene.IndexInfos.read(IndexInfos.java:303)
at
org.apache.jackrabbit.core.query.lucene.IndexInfos.<init>(IndexInfos.java:107)
at
org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:253)
at
org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:555)
at
org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHandler.java:78)
at
org.apache.jackrabbit.core.config.RepositoryConfigurationParser$1.getQueryHandler(RepositoryConfigurationParser.java:655)
... 220 more 2017-05-02 10:58:30,549 ERROR
[org.springframework.web.context.ContextLoader] Context initialization
failed org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'filterChainProxy' defined in file
[/opt/biserver-ce/pentaho-solutions/system/applicationContext-spring-security.xml]:
Invocation of init method failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'basicProcessingFilter' defined in file
[/opt/biserver-ce/pentaho-solutions/system/applicationContext-spring-security.xml]:
Cannot resolve reference to bean 'authenticationManager' while setting
bean property 'authenticationManager'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'authenticationManager' defined in file
[/opt/biserver-ce/pentaho-solutions/system/applicationContext-spring-security.xml]:
Cannot create inner bean 'pen:bean#74e48049' of type
[org.pentaho.platform.engine.core.system.objfac.spring.BeanBuilder]
while setting bean property 'providers' with key [0]; nested exception
is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'pen:bean#74e48049': FactoryBean threw
exception on object creation; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name
'org.springframework.security.providers.dao.DaoAuthenticationProvider#1'
defined in file
[/opt/biserver-ce/pentaho-solutions/system/applicationContext-spring-security-jackrabbit.xml]:
Cannot create inner bean 'pen:bean#2a743bcc' of type
[org.pentaho.platform.engine.core.system.objfac.spring.BeanBuilder]
while setting bean property 'userDetailsService'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'pen:bean#2a743bcc': FactoryBean threw
exception on object creation; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'cachingUserDetailsService' defined in file
[/opt/biserver-ce/pentaho-solutions/system/pentahoObjects.spring.xml]:
Cannot resolve reference to bean 'UserDetailsService' while setting
constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'UserDetailsService': FactoryBean threw
exception on object creation; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'userDetailsService' defined in file
[/opt/biserver-ce/pentaho-solutions/system/applicationContext-spring-security-jackrabbit.xml]:
Cannot resolve reference to bean 'userRoleDaoTxn' while setting bean
property 'userRoleDao'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'userRoleDaoTxn' defined in file
[/opt/biserver-ce/pentaho-solutions/system/repository.spring.xml]:
Cannot resolve reference to bean 'userRoleDao' while setting bean
property 'target'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'userRoleDao' defined in file
[/opt/biserver-ce/pentaho-solutions/system/repository.spring.xml]:
Cannot resolve reference to bean 'adminJcrTemplate' while setting
constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'adminJcrTemplate' defined in file
[/opt/biserver-ce/pentaho-solutions/system/repository.spring.xml]:
Cannot resolve reference to bean 'jcrAdminSessionFactory' while
setting bean property 'sessionFactory'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jcrAdminSessionFactory' defined in file
[/opt/biserver-ce/pentaho-solutions/system/repository.spring.xml]:
Cannot resolve reference to bean 'jcrRepository' while setting
constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jcrRepository' defined in file
[/opt/biserver-ce/pentaho-solutions/system/repository.spring.xml]:
Invocation of init method failed; nested exception is
javax.jcr.RepositoryException: Unable to initialize query handler:
org.apache.jackrabbit.core.query.lucene.SearchIndex@7ac41a30
,这不是我所期望的。
所以我不幸运......有没有办法以直接的方式做到这一点?
答案 0 :(得分:2)
我认为这应该有用。
$date = "20/04/17 13:27:5";
$sec = substr($date, strrpos($date, ":") + 1);
$sec = substr("0{$sec}", -2);
$new = substr($date, 0, strrpos($date, ":") + 1) . $sec;
$newDate = Carbon::createFromFormat('d/m/y H:i:s', $new);
我更改了格式,因为您使用m
两次&#34;分钟&#34;和&#34;月&#34;。这个月是正确的,但不是分钟。而是将i
用于带有前导零的分钟。
$sec
我过去常常从字符串中获取第二个字符串。这将获得:
的最后位置,并将获取其后的所有内容。 这假定您不更改字符串的格式
substr("0{$sec}", -2)
向当前秒添加零并提取最后两个字符。这意味着50
变为050
,然后最后两个字符为50
,因此我们最终没有填充,但5
变为05
,最后两个字符是唯一的字符。
$new
使用零填充连接日期字符串的开头和新的第二个字符串。
$newDate
是原始字符串,格式已更改。
答案 1 :(得分:1)
秒有问题。必须05
不仅5
<?php
$original_date = "20/04/17 13:27:5";
$date_explode = explode(":", $original_date);
$date_explode[2] = str_pad($date_explode[2],2,"0",STR_PAD_LEFT);
$original_date = implode($date_explode,":");
$date = DateTime::createFromFormat('d/m/y H:i:s', $original_date);
echo date_format($date,"d-m-Y H:i:s");
?>
答案 2 :(得分:0)
这是一个有效的转换例程,可以创建您正在寻找的ISO格式。但正如已经提到的,你需要“修复”你提供的原始示例中指定秒的奇怪方式。如果确实是您收到的格式,则必须使用字符串函数。更好的方法是修复创建这种破碎格式的代码。
<?php
$input = '20/04/17 13:27:05';
$date = DateTime::createFromFormat('d/m/y H:i:s', $input);
var_dump($date->format('d-m-Y H:i:s'));
输出显然是:
string(19) "20-04-2017 13:27:05"
答案 3 :(得分:0)
不是这样的吗?
$newDate = Carbon::createFromFormat('d/m/y H:i:s', $originalDate);