日期转换为时间戳并转换为其他日期格式

时间:2019-06-24 13:30:16

标签: typoscript typo3-9.x

在pi_flexform字段中,我的日期格式设置为2010年12月26日

使用TypoScript,我需要将此日期转换为RFC-822格式,例如2010年12月26日星期三

我当前的代码如下:

20 = TEXT
20.wrap = <pubDate>|</pubDate>
20.data = flexform: pi_flexform:settings.datum
20.strtotime = 1
20.strftime = %a, %d %b %Y %H:%M:00 +0200

但这输出Mi,26 Dez 2010

我怎么只能在打字稿中这样做?

日期功能不起作用,它返回0

1 个答案:

答案 0 :(得分:0)

AFAIK切换到英语的唯一直接方法是将整个页面的语言环境设置为英语。但是我猜这里不是一个选择。如果您使用流体进行模板制作,可以想到的其他方法是自定义viewhelper(请参见https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/8-Fluid/8-developing-a-custom-viewhelper.html)。

但是,由于您想要一个纯排印字解决方案,所以我唯一想到的方法是将月/日放入寄存器并在case对象中运行它。这是本月的演示。

如果要整个日期,则必须将其扎在一起制作4个COA,第一个为当天(CASE),第二个为日期,第三个为月(CASE),最后一年:

注意:此代码段是可憎的-但它适用于这种非常特殊的情况:)

lib.test = COA
lib.test {
  wrap = <pubDate>|</pubDate>
  10 = LOAD_REGISTER
  10 {
    month.data = flexform: pi_flexform:settings.datum
    month.strtotime = 1
    month.strftime = %b
    }
  20 = CASE
  20 {
    key = {REGISTER:month}
    key.insertData = 1
    default = TEXT
    default.value = Jan
    Feb = TEXT
    Feb.value = Feb        
    Mrz = TEXT
    Mrz.value = Mar
    Apr = TEXT
    Apr.value = Apr
    Mai = TEXT
    Mai.value = May
    Jun = TEXT
    Jun.value = Jun
    Jul = TEXT
    Jul.value = Jul
    Aug = TEXT
    Aug.value = Aug
    Sep = TEXT
    Sep.value = Sep
    Okt = TEXT
    Okt.value = Oct                
    Nov = TEXT
    Nov.value = Nov
    Dez = TEXT
    Dez.value = Dec
  }
  30 = RESTORE_REGISTER
}