Angular / Firebase:将材料日期选取器日期从未定义转换为时间戳

时间:2017-09-01 11:51:59

标签: angular date firebase firebase-realtime-database angular-material

我使用

  • 火力

我有什么

  • 选择输入

  • 材料日期选择器

  • 当我点击按钮时,输入中的值将写入firebase

什么不工作

  • 从物料日期选择器中选择日期时,它将作为未定义
  • 返回

我想要实现的目标

  • 我希望能够从素材日期选择器中获取所选日期并更新firebase节点以及其余数据

  • 我想将所选日期保存为firebase中的时间戳

  • 在阅读数据时,我想以合理的格式阅读时间戳(建议最欢迎)

问题

  1. 为什么日期返回为未定义?

  2. 问题#1排序后,如何将日期转换为时间戳

  3. 在阅读数据时(在将其添加到firebase之后),如何将时间戳转换为实际可读日期?
  4. 我添加新数据组件HTML

    <!-- LIST OF DATA INPUTS -->
    <li>
      <div class="label"> Reference </div>
      <div class="data"> 
        <input #newReference type='text' placeholder='reference' /> 
      </div>
    </li>
    
    <li>
      <div class="label"> Date </div>
      <div class="data"> 
        <material-datepicker #newDate></material-datepicker>
      </div>
    </li>
    
    <!-- ADD DATA BUTTON -->
    <button (click)="addDATA(newReference.value, newDate.value)"> 
      Add 
    </button>
    

    将数据写入firebase的我的数据服务

    • 我有一个成功将多路径/原子更新写入firebase的服务
    • 失败的唯一原因(除非我评论出来......)是日期
    addDATA(reference: string, date: string) {
    
      // Data to be added
      var dataToAdd = {
        project_date: date,
        project_reference: reference
      }
    
      // Group the updates to the associated firebase nodes
      var updates = {};
      updates['/my_list'] = dataToAdd;
    
    
      // Make an update to the realtime database
      this.saveToRealtimeDatabase(updates);
    
    
    }
    

1 个答案:

答案 0 :(得分:0)

问:什么不工作

从材料日期选择器中选择日期时,它将作为未定义

返回

<强>答案:

您无法将firebase数据库中的日期保存为日期对象,因为它只接受字符串。将日期对象转换为字符串。 不确定Angular是否有toISOString()之类的方法,但如果有,请使用它。