This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // from https://twitter.com/Steve8708/status/1504131981444980739 | |
| // simplified to a function body of 8 tidy lines | |
| // no loop needed, no 2d array of 3-tuples needed | |
| // just 2 arrays, a findIndex call, and some indexing :) | |
| export function getRelativeTimeString( | |
| date: Date | number, | |
| lang = "en" | |
| ): string { | |
| const timeMs = typeof date === "number" ? date : date.getTime(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const minute = 60; | |
| const hour = minute * 60; | |
| const day = hour * 24; | |
| const week = day * 7; | |
| const month = day * 30; | |
| const year = day * 365; | |
| /** | |
| * Convert a date to a relative time string, such as | |
| * "a minute ago", "in 2 hours", "yesterday", "3 months ago", etc. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // just an example. A cleaner way is to wrap the showLine-stuff in a dedicated component | |
| <template> | |
| <div> | |
| <my-line v-if="showLine" :data="lineData" :options="options"> | |
| </div> | |
| </template> | |
| <script> | |
| export default { | |
| data () { |