我有一个数据表,它存储了各种日期和时间以及一个字符串.日期功能完美,但时间和字符串显示为无效时间.为什么会发生这种情况?

以下是一个响应示例:

"permission_date":"2024—03—08T18:08:08.783Z", "permission_start_date":"2024—03—08T18:08:10.590Z", "permission_end_date":"2024—03—26T18:08:13.574Z", "permission_start_time":"04:00 AM","permission_end_time":"06:00 PM ","理由":"asdf ",

下面是该表的缩略版本.

permission_date permission_start_date permission_start_time justification
2024-03-08 2024-03-08 Invalid date Invalid date

如表所示,日期处理得很好,但其他一切都不是. 我的表格助手,我在其中格式化数据:

export const TableHelpers = {
    data() {
      return {
        tableColumns: [{
            title: this.$t('permission_date'),
            type: 'custom-html',
            key: 'permission_date',
            modifier: (value) => {
              return moment(String(value)).format('YYYY-MM-DD');
            },
          },
          {
            title: this.$t('permission_start_date'),
            type: 'custom-html',
            key: 'permission_start_date',
            modifier: (value) => {
              return moment(String(value)).format('YYYY-MM-DD');
            },
          },
          {
            title: this.$t('permission_start_time'),
            type: 'custom-html',
            key: 'permission_start_time',
            modifier: (value) => {
              return moment(String(value)).format('hh:mm');
            },
          },
          {
            title: this.$t('permission_end_date'),
            type: 'custom-html',
            key: 'permission_end_date',
            modifier: (value) => {
              return moment(String(value)).format('YYYY-MM-DD');
            },
          },
          {
            title: this.$t('permission_end_time'),
            type: 'custom-html',
            key: 'permission_end_time',
            modifier: (value) => {
              return moment(String(value)).format('hh:mm');
            },

          },
          {
            title: this.$t('justification'),
            type: 'custom-html',
            key: 'justification',
            modifier: (value) => {
              return moment(String(value));
            },
          },
        }
      },
    }

用户输入数据的模式.

<div class="form-group row align-items-center">
<label class="col-md-12">
    {{ $t('permission_date') }}
</label>
<app-input class="col-sm-8"
           type="date"
           v-model="inputs.permission_date"
           :placeholder="$t('select_valid_date')"/>
</div>
<div class="form-group row align-items-center">
<label class="col-md-12">
    {{ $t('permission_start_date') }}
</label>
<app-input class="col-sm-8"
           type="date"
           v-model="inputs.permission_start_date"
           :placeholder="$t('select_valid_date')"/>
</div>
<div class="form-group row align-items-center">
<label class="col-md-12">
    {{ $t('permission_start_time') }}
</label>
<app-input class="col-sm-8"
           type="time"
           v-model="inputs.permission_start_time"
           :placeholder="$t('select_valid_time')"/>
</div>
<div class="form-group row align-items-center">
<label class="col-md-12">
    {{ $t('permission_end_date') }}
</label>
<app-input class="col-sm-8"
           type="date"
           v-model="inputs.permission_end_date"
           :placeholder="$t('select_valid_date')"/>
</div>
<div class="form-group row align-items-center">
<label class="col-md-12">
    {{ $t('permission_end_time') }}
</label>
<app-input class="col-sm-8"
           type="time"
           v-model="inputs.permission_end_time"
           :placeholder="$t('select_valid_time')"/>
</div>
<div class="form-group row align-items-center">
<label for="inputs_name" class="col-md-12">
    {{ $t('Justification') }}
</label>
<app-input id="inputs_name" class="col-sm-9" type="textarea" 
    v-model="inputs.justification"
    :placeholder="$t('textarea_field')" :required="true" />
</div>

推荐答案

默认情况下,我认为moment()期望参数包含日期和时间.要只分析一个不带日期的时间,请传递一个包含格式字符串的第二个参数.

            title: this.$t('permission_start_time'),
            type: 'custom-html',
            key: 'permission_start_time',
            modifier: (value) => {
              return moment(String(value), 'hh:mm a').format('hh:mm');
            },

Javascript相关问答推荐

如何编辑代码FlipDown.js倒计时?

禁用从vue.js 2中的循环创建的表的最后td的按钮

React:未调用useState变量在调试器的事件处理程序中不可用

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

Vue:ref不会创建react 性属性

硬币兑换运行超时

单击子元素时关闭父元素(JS)

Spring boot JSON解析错误:意外字符错误

我们如何从一个行动中分派行动

简单的PayPal按钮集成导致404错误

并不是所有的iframe都被更换

同一类的所有div';S的模式窗口

如何将zoom 变换应用到我的d3力有向图?

在D3条形图中对具有相同X值的多条记录进行分组

JavaScript:如果字符串不是A或B,则

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

Jexl to LowerCase()和Replace()

在GraphQL解析器中修改上下文值

不协调嵌入图片

如何使用useparams从react路由中提取id