【问题标题】:Date/Time format relative to date range相对于日期范围的日期/时间格式
【发布时间】:2014-12-23 03:58:46
【问题描述】:

我需要根据我正在使用的日期范围选择适当的日期/时间格式。 日期范围可以是几周、几天、几小时、几秒(甚至几毫秒)。

我研究了 moment.js 和 format.js,但我希望那里有更好的东西。我想实现类似 highcharts daterange 之类的东西。这些图表根据范围为日期时间轴选择适当的格式。

任何帮助将不胜感激。

【问题讨论】:

标签: javascript highcharts momentjs formatjs


【解决方案1】:

试试下面的代码,还是很粗糙:

var start = new Date(2014,12,22);
var end = new Date(2014,12,23);

var range = end.getTime() - start.getTime(); // milliseconds
var seconds = range/1000;
var minutes = seconds/60;
var hour = minutes/60;
var days = hour/24;
var months = days/30;
var year = months/12;

var maxValue = [9999, 12, 31, 24, 60, 60];
var dateRange = [year, months, days, hour, minutes, seconds];
var dateFormat = ['#yr', '#mt', '#d', '#h', '#min', '#sec'];

var specifiedIndex = 0; // default format
for (var index = 0; index < maxValue.length; index ++)
{
    if ((dateRange[index] < maxValue[index]) && (dateRange[index] >= 1))
    { 
        specifiedIndex = index;
        index = maxValue.length;
    }
}
alert("format date = " + dateFormat[specifiedIndex]);

谢谢,

【讨论】:

  • 谢谢,我在找图书馆(懒惰)。但我可以将此扩展到我的事业。
【解决方案2】:

首先,我们需要检查此用例的 CLDR (http://cldr.unicode.org/) 数据是否存在,然后您可以在此处打开问题https://github.com/tc39/ecma402,我们可以开始在 javascript 中寻找解决方案以显示日期范围相对形式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2018-04-08
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    相关资源
    最近更新 更多