Moment 时间处理

如果项目中使用的是 1.x 版本的基础组件(@alifd/next),请在左侧导航顶部切换组件版本。

安装方法

  1. 在命令行中执行以下命令npm install @icedesign/base@latest -S

Guide

moment.js 是一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。本组件是 moment.js 的一个精简版,删掉了多余的 locale,留下主流的 locale 文案。具体用法参考 moment.js 的官方文档。

语言缩写备注
英语en-us默认
阿拉伯语ar
德语de
西班牙语es
法语fr
印地语hi
意大利语it
日语ja
韩语ko
葡萄牙语pt
俄语ru
简体中文zh-cn
繁体中文zh-hk
繁体中文zh-tw

如果您不熟悉 moment.js ,强烈建议您先阅读官方的文档。

代码示例

基本

最简单的用法。

Moment 时间处理 - 图1

查看源码在线预览

  1. import { moment } from "@icedesign/base";
  2. class Demo extends React.Component {
  3. constructor(props) {
  4. super(props);
  5. this.state = {
  6. lang: "zh-cn"
  7. };
  8. }
  9. onChangeLang(e) {
  10. this.setState({
  11. lang: e.target.value
  12. });
  13. }
  14. render() {
  15. const { lang } = this.state;
  16. moment.locale(lang);
  17. return (
  18. <div>
  19. <select value={lang} onChange={this.onChangeLang.bind(this)}>
  20. <option value="none">none</option>
  21. <option value="en-us">en-us</option>
  22. <option value="ar">ar</option>
  23. <option value="de">de</option>
  24. <option value="es">es</option>
  25. <option value="fr">fr</option>
  26. <option value="hi">hi</option>
  27. <option value="it">it</option>
  28. <option value="ja">ja</option>
  29. <option value="ko">ko</option>
  30. <option value="pt">pt</option>
  31. <option value="ru">ru</option>
  32. <option value="zh-cn">zh-cn</option>
  33. <option value="zh-hk">zh-hk</option>
  34. <option value="zh-tw">zh-tw</option>
  35. </select>
  36. <br />
  37. <br />
  38. <h3>Format Dates</h3>
  39. <ul className="box">
  40. <li>
  41. <span className="code">
  42. moment().format('MMMM Do YYYY, h:mm:ss a');
  43. </span>
  44. <span className="display">
  45. //{moment().format("MMMM Do YYYY, h:mm:ss a")}
  46. </span>
  47. </li>
  48. <li>
  49. <span className="code">moment().format('dddd');</span>
  50. <span className="display">//{moment().format("dddd")}</span>
  51. </li>
  52. <li>
  53. <span className="code">moment().format("MMM Do YY");</span>
  54. <span className="display">//{moment().format("MMM Do YY")}</span>
  55. </li>
  56. <li>
  57. <span className="code">
  58. moment().format('YYYY [escaped] YYYY');
  59. </span>
  60. <span className="display">
  61. //{moment().format("YYYY [escaped] YYYY")}
  62. </span>
  63. </li>
  64. <li>
  65. <span className="code">moment().format();</span>
  66. <span className="display">//{moment().format()}</span>
  67. </li>
  68. </ul>
  69. <h3>Relative Time</h3>
  70. <ul className="box">
  71. <li>
  72. <span className="code">
  73. moment("20111031", "YYYYMMDD").fromNow();
  74. </span>
  75. <span className="display">
  76. //{moment("20111031", "YYYYMMDD").fromNow()}
  77. </span>
  78. </li>
  79. <li>
  80. <span className="code">moment().startOf('day').fromNow();</span>
  81. <span className="display">
  82. //{moment()
  83. .startOf("day")
  84. .fromNow()}
  85. </span>
  86. </li>
  87. <li>
  88. <span className="code">moment().endOf('day').fromNow();</span>
  89. <span className="display">
  90. //{moment()
  91. .endOf("day")
  92. .fromNow()}
  93. </span>
  94. </li>
  95. <li>
  96. <span className="code">moment().startOf('hour').fromNow();</span>
  97. <span className="display">
  98. //{moment()
  99. .startOf("hour")
  100. .fromNow()}
  101. </span>
  102. </li>
  103. <li>
  104. <span className="code">moment().format();</span>
  105. <span className="display">//{moment().format()}</span>
  106. </li>
  107. </ul>
  108. <h3>Calendar Time</h3>
  109. <ul className="box">
  110. <li>
  111. <span className="code">
  112. moment().subtract(10, 'days').calendar();
  113. </span>
  114. <span className="display">
  115. //{moment()
  116. .subtract(10, "days")
  117. .calendar()}
  118. </span>
  119. </li>
  120. <li>
  121. <span className="code">moment().calendar();</span>
  122. <span className="display">//{moment().calendar()}</span>
  123. </li>
  124. <li>
  125. <span className="code">moment().add(10, 'days').calendar();</span>
  126. <span className="display">
  127. //{moment()
  128. .add(10, "days")
  129. .calendar()}
  130. </span>
  131. </li>
  132. </ul>
  133. <h3>Multiple Locale Support</h3>
  134. <ul className="box">
  135. <li>
  136. <span className="code">moment.locale();</span>
  137. <span className="display">//{moment.locale()}</span>
  138. </li>
  139. <li>
  140. <span className="code">moment().format('LT');</span>
  141. <span className="display">//{moment().format("LT")}</span>
  142. </li>
  143. <li>
  144. <span className="code">moment().format('LLLL');</span>
  145. <span className="display">//{moment().format("LLLL")}</span>
  146. </li>
  147. </ul>
  148. </div>
  149. );
  150. }
  151. }
  152. ReactDOM.render(<Demo />, mountNode);
  1. .box {
  2. list-style: none;
  3. border: 1px solid rgba(34,34,34,0.2);
  4. border-radius: 4px;
  5. color: #000;
  6. font-size: 14px;
  7. padding: 5px 8px;
  8. margin: 0 0 20px;
  9. line-height: 24px;
  10. background: rgba(34,34,34,0.03);
  11. }
  12. .code {
  13. display: inline-block;
  14. width: 50%;
  15. }
  16. .display {
  17. color: rgba(34,34,34,0.5);
  18. }

相关区块

Moment 时间处理 - 图2

暂无相关区块