Convert a date into another format with a TypoScript UserFunc

Powermail delivers a userFunc that could be used from administrators to convert date formats with TypoScript. This userFunc is not needed for the normal work of the extension. It is just an add-on for your special needs.

Example Use-Case:

  • Powermail with a date field is in use
  • After submit the date should be stored in a third-party-table (e.g. tx_ext_domain_model_table.endtime or tt_content.endtime)
  • The problem is, if someone would get the POST param from date field, it will be a readable string like "2015-12-31" but a timestamp is needed
# Convert 31.12.2015 to 2015-12-31
lib.test = USER
lib.test {
    userFunc = In2code\Powermail\UserFunc\DateConverter->convert
    includeLibs = EXT:powermail/Classes/UserFunc/DateConverter.php

    input = TEXT
    input.value = 31.12.2015

    inputFormat = TEXT
    inputFormat.value = d.m.Y

    outputFormat = TEXT
    outputFormat.value = Y-m-d
}
Copied!
# Convert 2015-12-31 into 1451516400
lib.test = USER
lib.test {
    userFunc = In2code\Powermail\UserFunc\DateConverter->convert
    includeLibs = EXT:powermail/Classes/UserFunc/DateConverter.php

    input = TEXT
    input.value = 2015-12-31

    inputFormat = TEXT
    inputFormat.value = Y-m-d

    outputFormat = TEXT
    outputFormat.value = U
}
Copied!
# Convert 2015-12-31 into 1451516400
plugin.tx_powermail.settings.setup.dbEntry.1 {
    # enable db entry
    _enable = TEXT
    _enable.value = 1

    # set table name
    _table = TEXT
    _table.value = tt_content

    # Fill with static value
    pid = TEXT
    pid.value = 123

    # Fill with current timestamp
    crdate = TEXT
    crdate.data = date:U

    # Fill header from powermail field with marker {header}
    header = TEXT
    header.data = GP:tx_powermail_pi1|field|header

    # Fill header from powermail field with marker {date} from Y-m-d to a unix timestamp
    starttime = USER
    starttime {
        userFunc = In2code\Powermail\UserFunc\DateConverter->convert
        includeLibs = EXT:powermail/Classes/UserFunc/DateConverter.php

        input = TEXT
        input.data = GP:tx_powermail_pi1|field|date

        inputFormat = TEXT
        inputFormat.value = Y-m-d

        outputFormat = TEXT
        outputFormat.value = U
    }
}
Copied!