我正在尝试将秒转换为DD:HH:mm:ss格式或其他格式,例如 ( YYYYMMDD)
function secToFormat(seconds, format){
return moment.utc(seconds * 1000).format(format);
}
// works well.
console.log(secToFormat(40,"HH:mm:ss"));
console.log(secToFormat(100,"HH:mm:ss"));
console.log(secToFormat(1800,"HH:mm:ss"));
console.log(secToFormat(18800,"HH:mm:ss"));
console.log(secToFormat(86300,"HH:mm:ss"));
// doesn't work I expected.
console.log(secToFormat(40,"DD:HH:mm:ss")); //it returns 01:00:00:40 but I expect 00:00:00:40
console.log(secToFormat(100,"DD:HH:mm:ss")); //it returns 01:00:01:40 but I expect 00:00:01:40
console.log(secToFormat(86300,"DD:HH:mm:ss")); //it returns 01:23:58:20 but I expect 00:23:58:20
console.log(secToFormat(86400*2,"DD:HH:mm:ss")); //it returns 03:00:00:00 but I expect 02:00:00:00
// it also doesn't work with another format.
console.log(secToFormat(40, "MM:DD:HH:mm:ss")); // I want to get 00:00:00:00:40
console.log(secToFormat(100, "MM:DD:HH:mm:ss")); // I want …Run Code Online (Sandbox Code Playgroud)根据其文档,moment.js已弃用,因此我在 React 项目中使用了Luxon 。我需要将日期格式化为DD'MM yyyy,Luxon 不接受这种格式,而 MomentJs 成功做到了。如果你们在 Luxon 找到任何方法来处理这个问题,请回答:
MomentJS
moment('06/24/2020').format('DD\'MM yyyy') // output is = 24'06 2020
Run Code Online (Sandbox Code Playgroud)
勒克森
console.warn(DateTime.fromJSDate(new Date("06/24/2020")).toFormat('dd\'MM yyyy')); // output is = 24MM yyyy
Run Code Online (Sandbox Code Playgroud) 所以我有一组特殊的数据:
data: [
['2022-01-17T16:29:24', 30], // these below would aggregate to 210
['2022-01-17T17:37:24', 30],
['2022-01-17T17:41:40', 30],
['2022-01-17T17:41:48', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:29', 30],
['2022-01-12T12:50:18', 30], // these below would aggregate to 90
['2022-01-12T12:50:18', 30],
['2022-01-12T12:50:29', 30]
]
Run Code Online (Sandbox Code Playgroud)
我需要将其减少为周数据集。我会将日期转换为一周的开始以获取周数据moment(day).startOf('isoWeek'),然后将相似日期的数据连接起来并将其减少为单个条目。
最终结果如下:
data: [
['2022-01-17T00:00:00', 210],
['2022-01-10T00:00:00', 90]
]
Run Code Online (Sandbox Code Playgroud)
但我正在寻找如何使用的建议.reduce()或任何其他更现代的解决方案,这些解决方案将在大型设备上发挥作用。现在我为此嵌套了 for 循环(除了看起来很糟糕之外)可能性能很差,因为它在同一个数组上迭代多次。一项要求是moment应该用于日期操作,请尽量避免使用Dateobj。
现在我有这样的事情:
data: [
['2022-01-17T16:29:24', 30], // these below would aggregate to 210
['2022-01-17T17:37:24', 30],
['2022-01-17T17:41:40', 30],
['2022-01-17T17:41:48', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:18', 30], …Run Code Online (Sandbox Code Playgroud) 假设我有以下代码:
var date = moment();
var timestamp = date.unix();
var utc_timestamp = moment.utc().unix();
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果你打电话给utc().所有函数都以utc模式返回值.
那么在这种情况下似乎并非如此.
date = {_isAMomentObject: true, _isUTC: false, _locale: r, _d: Thu Mar 24 2016 14:51:35 GMT-0700 (PDT)}
timestamp = 1458856295
utc_timestmap = 1458856295
Run Code Online (Sandbox Code Playgroud)
然而.如果我使用
moment().utc(date.toDate().toUTCString())l
Run Code Online (Sandbox Code Playgroud)
该值似乎是UTC.但它使用"当前又名NOW值"作为utc值和时刻值.
问题是,我如何获得现有时刻的utc时间戳?
我查看了建议的问题,并搜索了但我似乎无法找到正确的解决方案.
编辑//
我有服务器端代码在Golang中生成时间戳.然后通过休息将其发送到我的网络服务器.并转换为MYSQL中的DateTime字段.
当我然后使用时刻生成时间戳,并在我的数据库中查询时刻1和时刻2之间的unix_timestamp(时间戳)时,基于DST,时刻的时间戳正好提前7或8小时.
我已将DateTime字段转换为时间戳.到目前为止还没有工作但可能是我的代码中的另一个问题.
如何获得给定日期范围内的确切天数?恩.给出以下内容:
today = moment("2016-06-29")
due = moment("2016-05-13")
days_left = today.diff(due, 'days'); // returns 47
Run Code Online (Sandbox Code Playgroud)
但我希望它显示1个月和16天?
可能之前问过但是找不到答案.如何检查时间是否每天超过17:30?
我的情况是我需要检查周一到周五当前时间是否大于17:30,如果今天是星期六,我必须检查时间是否大于15:30.
我更喜欢使用Moment.js.
我正在使用moment.js库来格式化MM DD,YYYY格式的日期.我错过了什么?
代码如下:
import moment from 'moment';
var dateStr = '2015-10-19T13:33:52.140Z';
var d = new Date(dateStr); // Mon Oct 19 2015 13:33:52 GMT+0000 (GMT)
console.log( moment(d, "MM DD, YYYY").toDate() ) // Still outputs Mon Oct 19 2015 13:33:52 GMT+0000 (GMT)
Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery timepicker在UI上显示12小时格式时间.但在内部,当数据进入服务器时,我必须将该格式转换为24小时格式.我怎么能用时刻js做到这一点
这是我在展示时间的时间
07:50 PM
Run Code Online (Sandbox Code Playgroud)
我想要以24小时格式转换成.我正在尝试下面的方法,但得到相同的输出,如UI所示.
output=moment($(this).val(),"hh:mm").format("HH mm");
Run Code Online (Sandbox Code Playgroud)
请帮帮我.谢谢
在我的调度程序视图中,我试图将用户可以选择的时间限制为最多4小时。我以为那selectConstraint是票,但没有找到应用最大可选择持续时间的方法。
我希望有一些类似的东西,selectConstraint: {duration: '04:00'} 或者duration: '240'(几分钟内)。
或者...也许限制了可选插槽的数量?我将其分解为15分钟的增量,因此是否有办法将选择限制为最多16个插槽?
我一直在搜索FullCalendar Docs(我认为这是相当差的IMO ...),但是我似乎找不到关键因素。
任何人?
$('#schedulerCalendar').fullCalendar({
defaultView: 'agendaDay',
defaultDate: moment(systemDate),
eventClick: $scope.eventClick,
editable: true,
eventOverlap: false,
selectable: true,
selectHelper: true,
select: $scope.dayClick,
slotDuration : '00:15:00',
slotEventOverlap: false,
allDaySlot: false,
// Display only business hours (8am to 5pm)
minTime: "08:00",
maxTime: "17:00",
businessHours: {
dow: [ 1, 2, 3, 4, 5], // Monday - Thursday
start: '08:00', // start time (8am)
end: '17:00', // end time (5pm)
}, …Run Code Online (Sandbox Code Playgroud) jquery scheduler fullcalendar momentjs fullcalendar-scheduler
我正在尝试生成一个欧盟日期,通常采用的格式为DD/MM/YYYY.
// August 1st, 2018, EU format is DD/MM/YYYY
const myDate = moment('01/08/2018').locale('fr');
console.log(myDate.format('MM/DD/YYYY'));
Run Code Online (Sandbox Code Playgroud)
尝试在momentjs.com控制台中粘贴此代码,但它不起作用.
我期待08/01/2018,但是我01/08/2018回来了.它似乎不尊重语言环境日期格式.
任何人都知道如何解决这个问题?
momentjs ×10
javascript ×9
date ×2
jquery ×2
datetime ×1
fullcalendar ×1
luxon ×1
scheduler ×1
timestamp ×1