在React-vis时间轴坐标轴中设置24小时时间格式

7

我正在使用带有xType={'time'}和俄语区域设置的XYPlot,如文档中所述,是否有一种方法将24小时时间格式传递给d3-scale?

scale

我需要像“03:00”这样的时间格式,而不是“03 AM”。

d3-time-format的俄语区域设置中,时间定义为%H,应为24小时制:

{
    "dateTime": "%A, %e %B %Y г. %X",
    "date": "%d.%m.%Y",
    "time": "%H:%M:%S",
    "periods": ["AM", "PM"],
    // ... some other options
}

很遗憾,这个设置不会影响比例行为。

地区确实会影响比例尺的格式,但是设置使用包括时间段(即12小时制而不是24小时制)的格式的位置在其他地方。 - Kaos
2个回答

4

因此,根据您在网页末尾提供的链接,您可以注意到在另一个区域设置中可以进行配置。 您可以稍微调整时间以实现您所需的目标:

import {timeFormatDefaultLocale} from 'd3-time-format';
timeFormatDefaultLocale({
    dateTime    : '%a %b %e %X %Y',
    date        : '%d/%m/%Y',
    time        : '%H%H:%m%m:%s%s',
    periods     : ['AM', 'PM'],
    days        : ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
    shortDays   : ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
    months      : ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Decembre'],
    shortMonths : ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jui', 'Juil', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec']
});

您可以在此处找到日期格式:JavaScript日期格式

1
传递给timeFormatDefaultLocale()的时间设置不会影响d3-scale的行为。基本上这就是我要解决的问题。我扩展了我的问题以使其更清晰明了。 - miki noidea

0

你可以使用 Moment.js 来实现类似以下的功能:

<XAxis
     tickFormat={(v) => ${moment(v).format("h:mm a")}}
/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接