【问题标题】:How to recognize a string value is date string or not in react如何识别字符串值是日期字符串还是不是反应
【发布时间】:2020-09-08 09:49:37
【问题描述】:

我想识别一个字符串值是日期字符串还是没有反应。 因为我想更改日期的格式,如果值是日期字符串。

这是我的代码:

let value = //get a string value from other component (e.g. `2020-9-8 00:00:00` or `text`

value is date string // I don't know how to write this condition and check value is dateString
?
  moment(value,"YYYY-M-D HH:mm:ss").format("jYYYY/jM/jD HH:mm:ss");
:
  value;

【问题讨论】:

标签: reactjs datetime momentjs


【解决方案1】:

您可以尝试 Date.parse() ,如果它给出 Nan 则表示该字符串不是日期

【讨论】:

  • 谢谢。是的。这是一个解决方案,但您知道其他解决方案吗?我的意思是,我有很多价值,通过这个解决方案,我应该将每个值转换为 Date ,然后检查它是否是 Nan 。我想知道您是否可以建议我一个更优化的解决方案。
  • 也许您可以先检查该值是否有数字,如果有数字则只能是日期,这样可以节省时间,而不是将每个字符串都检查为日期
【解决方案2】:

如果您可以安装 dateformat,您可以通过多种组合检索所需格式的字符串。

  import dateFormat from 'dateformat';
  {dateFormat(this.state.CreatedOn, "mm/dd/yyyy")}

https://www.npmjs.com/package/dateformat

【讨论】:

  • 谢谢。但我的问题不是改变格式。重点是检查value 是否为日期字符串。例如value = "test" 不是日期字符串,但value = "2020-9-8 00:00:00" 是日期字符串。我想检查一下。
【解决方案3】:

您可以尝试使用 moment.js:

https://momentjs.com/

安装包:npm install moment --save

如下使用

import Moment from 'moment';

render(){
    Moment.locale('en');
    var dt = '2016-05-02T00:00:00';
    return(<View> {Moment(dt).format('d MMM')} </View>) //basically you can do all sorts of the formatting and others
}

否则你可以直接检查如下:

const date = Moment("2018-05-18T04:00:00.000Z").format('DD MMM, YYYY');
console.log(date);

例子:

const date = Moment("2018-05-18T04:00:00.000Z").format('DD MMM, YYYY');
const dateString = Moment("Test").format('DD MMM, YYYY');
console.log(date); // Ans : 18 May, 2018
console.log(dateString); // Ans : Invalid date

【讨论】:

  • 如果 'value = "test"' ,如何检查值不是日期字符串?
  • 你会像这样检查 const date = Moment("2018-05-18T04:00:00.000Z").format('DD MMM, YYYY'); const dateString = Moment("Test").format('DD MMM, YYYY');控制台日志(日期); //2018年5月18日 console.log(dateString);//无效日期
  • @ZahraTalebi 您可以查看示例中的示例。如果值是字符串或不是日期,您将得到 Invalid date。
猜你喜欢
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多