ionic2/3常見(jiàn)問(wèn)題-<ion-datetime>的值是字符串,并且是使用ISO 8601日期格式作為其值

問(wèn)題重現(xiàn)

  • 當(dāng)給<ion-datetime>賦值時(shí),格式不對(duì)就顯示不出來(lái),如下圖,點(diǎn)擊圖片放大看

解決問(wèn)題

  • 查看DateTime API得知.<ion-datetime>的值是字符串,并且是使用ISO 8601日期格式作為其值
  • ISO 8601日期格式為: YYYY-MM-DDTHH:mmZ,其中T是分隔符,Z表示時(shí)區(qū),看下圖當(dāng)不指定時(shí)區(qū),new Date()格式化時(shí)間會(huì)多加8小時(shí),北京時(shí)間指定時(shí)區(qū)為+08:00,這時(shí)候用new Date()格式化字符串為日期格式才能輸出我們的期望值
  • 綜上,我們要給<ion-datetime>賦值,需要的格式是YYYY-MM-DDTHH:mm+08:00如:2015-05-05T05:05:05+08:00.

新問(wèn)題來(lái)了

  • 我們一般的日期如new Date()继蜡、時(shí)間毫秒數(shù)杂伟、2015-05-05 05:05:05等日期怎么格式化為YYYY-MM-DDTHH:mm+08:00格式?
  • 我已經(jīng)準(zhǔn)備好了強(qiáng)大的格式化函數(shù)


/**
   * 日期對(duì)象轉(zhuǎn)為日期字符串
   * @param date 需要格式化的日期對(duì)象
   * @param sFormat 輸出格式,默認(rèn)為yyyy-MM-dd                        年:y很洋,月:M,日:d只盹,時(shí):h,分:m,秒:s
   * @example  dateFormat(new Date())                               "2017-02-28"
   * @example  dateFormat(new Date(),'yyyy-MM-dd')                  "2017-02-28"
   * @example  dateFormat(new Date(),'yyyy-MM-dd HH:mm:ss')         "2017-02-28 13:24:00"   ps:HH:24小時(shí)制
   * @example  dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')         "2017-02-28 01:24:00"   ps:hh:12小時(shí)制
   * @example  dateFormat(new Date(),'hh:mm')                       "09:24"
   * @example  dateFormat(new Date(),'yyyy-MM-ddTHH:mm:ss+08:00')   "2017-02-28T13:24:00+08:00"
   * @example  dateFormat(new Date('2017-02-28 13:24:00'),'yyyy-MM-ddTHH:mm:ss+08:00')   "2017-02-28T13:24:00+08:00"
   * @returns {string}
   */
  static dateFormat(date: Date, sFormat: String = 'yyyy-MM-dd'): string {
    let time = {
      Year: 0,
      TYear: '0',
      Month: 0,
      TMonth: '0',
      Day: 0,
      TDay: '0',
      Hour: 0,
      THour: '0',
      hour: 0,
      Thour: '0',
      Minute: 0,
      TMinute: '0',
      Second: 0,
      TSecond: '0',
      Millisecond: 0
    };
    time.Year = date.getFullYear();
    time.TYear = String(time.Year).substr(2);
    time.Month = date.getMonth() + 1;
    time.TMonth = time.Month < 10 ? "0" + time.Month : String(time.Month);
    time.Day = date.getDate();
    time.TDay = time.Day < 10 ? "0" + time.Day : String(time.Day);
    time.Hour = date.getHours();
    time.THour = time.Hour < 10 ? "0" + time.Hour : String(time.Hour);
    time.hour = time.Hour < 13 ? time.Hour : time.Hour - 12;
    time.Thour = time.hour < 10 ? "0" + time.hour : String(time.hour);
    time.Minute = date.getMinutes();
    time.TMinute = time.Minute < 10 ? "0" + time.Minute : String(time.Minute);
    time.Second = date.getSeconds();
    time.TSecond = time.Second < 10 ? "0" + time.Second : String(time.Second);
    time.Millisecond = date.getMilliseconds();

    return sFormat.replace(/yyyy/ig, String(time.Year))
      .replace(/yyy/ig, String(time.Year))
      .replace(/yy/ig, time.TYear)
      .replace(/y/ig, time.TYear)
      .replace(/MM/g, time.TMonth)
      .replace(/M/g, String(time.Month))
      .replace(/dd/ig, time.TDay)
      .replace(/d/ig, String(time.Day))
      .replace(/HH/g, time.THour)
      .replace(/H/g, String(time.Hour))
      .replace(/hh/g, time.Thour)
      .replace(/h/g, String(time.hour))
      .replace(/mm/g, time.TMinute)
      .replace(/m/g, String(time.Minute))
      .replace(/ss/ig, time.TSecond)
      .replace(/s/ig, String(time.Second))
      .replace(/fff/ig, String(time.Millisecond))
  }

綜合事例


 <ion-datetime displayFormat="YYYY年MM月DD日 HH:mm" [(ngModel)]="myDate"
                    doneText="確定" cancelText="取消"></ion-datetime>
 myDate= Utils.dateFormat(new Date(), 'yyyy-MM-ddTHH:mm:ss+08:00');

最后

  • 日期和時(shí)間單獨(dú)使用沒(méi)有上述問(wèn)題,如下圖


  • 再此強(qiáng)調(diào):<ion-datetime>的值是字符串,并且是使用ISO 8601日期格式作為其值
  • ionic2官方DateTime API
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末家制,一起剝皮案震驚了整個(gè)濱河市政钟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖瞳脓,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異市俊,居然都是意外死亡铣鹏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門刽宪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)厘贼,“玉大人,你說(shuō)我怎么就攤上這事圣拄∽旖眨” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)岳掐。 經(jīng)常有香客問(wèn)我凭疮,道長(zhǎng),這世上最難降的妖魔是什么串述? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任执解,我火速辦了婚禮,結(jié)果婚禮上纲酗,老公的妹妹穿的比我還像新娘衰腌。我一直安慰自己,他們只是感情好觅赊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布右蕊。 她就那樣靜靜地躺著,像睡著了一般吮螺。 火紅的嫁衣襯著肌膚如雪饶囚。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天鸠补,我揣著相機(jī)與錄音萝风,去河邊找鬼。 笑死莫鸭,一個(gè)胖子當(dāng)著我的面吹牛闹丐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播被因,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼卿拴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了梨与?” 一聲冷哼從身側(cè)響起堕花,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粥鞋,沒(méi)想到半個(gè)月后缘挽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呻粹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年壕曼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片等浊。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腮郊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出筹燕,到底是詐尸還是另有隱情轧飞,我是刑警寧澤衅鹿,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站过咬,受9級(jí)特大地震影響大渤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掸绞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一泵三、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧集漾,春花似錦切黔、人聲如沸砸脊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凌埂。三九已至驱显,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞳抓,已是汗流浹背埃疫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孩哑,地道東北人栓霜。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像横蜒,于是被迫代替她去往敵國(guó)和親胳蛮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • SwiftDate概況 從Swift發(fā)布起丛晌,我們就沒(méi)有放棄使用Swift仅炊。 當(dāng)然,我們希望在項(xiàng)目能夠輕松自如地管理...
    Mee_Leo閱讀 9,984評(píng)論 1 13
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 10,869評(píng)論 6 13
  • longaaaa =14200666; Console.WriteLine(aaaa.ToString("N0")...
    魚(yú)落于天閱讀 905評(píng)論 0 1
  • ORACLE日期時(shí)間函數(shù)大全 TO_DATE格式(以時(shí)間:2007-11-02 13:45:25為例) Year:...
    雨一流閱讀 656評(píng)論 0 2
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,212評(píng)論 0 4