输入日期时强制浏览器遵守语言环境

时间:2018-06-22 20:18:45

标签: html angular date internet-explorer-11

我已经读过文章:Microsoft documentation of Wait-Job,但想知道我的案子是否可行。

我在各种浏览器中如何处理日期时遇到问题。使用Angular,我们开发了一个与REST服务对话的应用程序。要求的一部分是输入日期。 HTML非常简单,仅使用反应形式。这是一个片段。

 <form class="component-form-container" novalidate [formGroup]="archiveForm" (ngSubmit)="archiveData()">
            <fieldset>
                <section>
                    <div class="createArchive-form-container">
                        <label for="archiveSequoiaToDate">Extract and archive Sequoia data up to: </label>
                        <input type="date" name="archiveSequoiaToDate" formControlName="ArchiveToDate" width="50px" placeholder="dd/mm/yyyy" {{myDate | amTimeAgo}}>
                      <label class="errorMessage" *ngIf="archiveForm.touched && !archiveForm.valid">{{errorMessage}}</label>
                      <br/>

显然不完整,但基本上,“日期输入”只是将输入浏览器的日期传递给代码,然后由实习生将值传递给服务。再次是相关的代码段。

const archiveToDate = date.parse(this.archiveForm.get('ArchiveToDate').value);
const archiveTo = new Date(archiveToDate);
this.archivingService.archiveData(archiveTo).subscribe(x => { this.toggleProgress = true; },
  err => {
    this.handleArchiveError(err.json());

  });

我的问题是,大多数内置日期选择器控件的浏览器(Chrome,Edge,Firefox)都能按预期工作,即如果我在通过时使用浏览器日期选择器输入01/06/2018(dd / MM / yyyy)在日期击中     'this.archivingService.archiveData(archiveTo)' 代码行中的“ archiveTo”变量为01/06/2018

但是,当使用没有日期选择器的I.E 11时,当日期传递给服务时,您必须将日期键入为01/06/2018,其在本示例中的格式为06/01/2018。这意味着用于存档的数据没有按预期方式收集。

是否有一种方法可以强制将输入到浏览器中的任何日期输入到使用该网站的人员的语言环境中?

我真的不想开始添加自定义控件(例如ngx datepicker),而是喜欢“快速又脏”的东西

0 个答案:

没有答案