преобразование даты в метку времени и преобразование в другой формат даты - PullRequest
0 голосов
/ 24 июня 2019

в поле pi_flexform у меня дата отформатирована как 26.12.2010

с TypoScript мне нужно преобразовать эту дату в формат RFC-822, например, среда, 26 декабря 2010

мой текущий код показывает как:

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

как я могу сделать это только в typoscript?

функция даты не работает, она возвращает 0

1 Ответ

0 голосов
/ 08 июля 2019

AFAIK единственный прямой способ переключиться на английский - это установить язык всей страницы на английский.Но я предполагаю, что это не вариант здесь.Другие способы, которые приходят на ум, - это пользовательский помощник, если вы используете жидкость для шаблонов (см. https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/8-Fluid/8-developing-a-custom-viewhelper.html).

Но так как вам нужно решение pure typoscript , единственный способ, которым яМожно подумать о том, чтобы поместить месяц / день в регистр и запустить его в объекте case. Вот демоверсия для месяца.

Если вы хотите, чтобы вся дата была целой, вы должны собрать ее вместе, делая 4COA, первый для дня (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
}
...