微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Vapor 4

如何解决如何使用 Vapor 4

在列表中,我想显示数据库获取的日期。如果我使用:

#Date(timeStamp: appointment.appointmentDate,localizedFormat: "E,dd-MM-yyyy")

我希望:周三,30/12/2020 但我得到了周三,12/30/2020,我觉得很奇怪,因为我特别要求 dd-MM

然后我尝试了:

#Date(timeStamp: appointment.appointmentDate,fixedFormat: "E,dd-MM-yyyy")

工作正常,并为我提供:2020 年 12 月 30 日星期三

但是我还是不开心...

  1. 我想让它呈现 - 而不是 / : Wed,30-12-2020

  1. 因为我的应用程序将被本地化,所以我想控制一天的显示方式:Wed(英语)、Mer(法语)、woe(荷兰语)所以我如何设置应该在 Leaf 中使用哪个语言环境

(我知道如何在 Vapor 中做到这一点,但如果可能的话,我宁愿将它留给 Leaf。)

解决方法

创建叶子方法:

import Foundation
import Leaf

public struct DataLeafFunction: LeafFunction,StringReturn,Invariant {

    public static var callSignature: [LeafCallParameter] { [
        .double,.string(labeled: nil,optional: true,defaultValue: "yyyy-MM-dd")
    ] }

    public func evaluate(_ params: LeafCallValues) -> LeafData {
        guard let timestamp = params[0].double else { return .string(params[0].string) }

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = params[1].string
        let date = Date(timeIntervalSinceReferenceDate: timestamp)

        return .string(dateFormatter.string(from: date))
    }
}

添加功能配置:

func configure(_ app: Application) throws {
     LeafEngine.entities.use(DataLeafFunction(),asFunction: "date")
     // ...
}

在您的模板中使用此函数:

#date(date) 
#date(date,"YY/MM/dd")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?