【问题标题】:Specific date format and optional time included with moment.jsmoment.js 包含的特定日期格式和可选时间
【发布时间】:2020-04-01 21:50:18
【问题描述】:

团队, 我有一个像下面这样的 Typescript 方法。

public getDateDisplayFormat(dateFormat: string, displayTime: boolean): string {

}

“dateFormat”参数可以是任何带/不带日期的格式,例如MM/DD/YYYYDD/MM/YYYYDD/MM/YY HH:mmss ZMM/DD/YY HH:mmss Z 或任何其他有效格式。

但基于 displayTime 参数,我需要在日期中添加/删除时间值。

我尝试了 L 和 LLT 格式,但无论我的日期格式如何,它们都只给出 MM/DD/YYYY

dateFormat 是基于客户端动态的,因此我无法将其从 DD/MM 更改为 MM/DD

所以,我传递的 dateFormat 应该保持不变,但只有时间部分应该在格式中添加/删除。

请建议我如何实现这一目标。

提前致谢。

【问题讨论】:

    标签: javascript typescript momentjs


    【解决方案1】:

    试试这个

        public getDateDisplayFormat(dateFormat: string, displayTime: boolean): string {
        let format = dateFormat.substr(0,str.indexOf(' ')); //get the format by splitting the string on first space. Date goes at index 0, rest goes at index 1.
        if(displayTime){
    //if format length is greater than 1, it means that dateFormat had both date and time format so return it, else, append time format and return it.
        dateTime = format.length > 1 ? dateFormat : format[0] + "your time format";
        return dateTime;
        }
    // if time format is not needed just return the date format.
        return format[0];
        }
    

    【讨论】:

    • 感谢 Rohan 的快速回复。但是,我想返回格式而不是值。例如:如果我的输入类似于“DD/MM/YY”,那么我应该返回“DD/MM/YY h:mm A”。因为第二个参数是添加时间格式。并且,如果它为 false 并且时间格式存在于 dateFormat 中,则应将时间格式文本单独从 dateFormat 参数中删除并返回。
    • 所以基本上你想要一个函数来附加时间格式或根据你的第二个参数从已经附加的字符串中删除时间格式?
    • 我已经编辑了答案。看看是不是你需要的。
    • 是的,这确实为我提供了我应该做的事情。伟大的。非常感谢。
    • 太好了...请点赞并接受答案以帮助他人。
    猜你喜欢
    • 2015-03-30
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多