目前正在开发一个处理不同语言的项目,并且在以 PM/AM 格式显示毫秒时遇到了奇怪的行为。
如果我想使用 AM/PM 格式显示毫秒精度的日期/时间对,我会得到如下内容:
12/14/2017 3:45:45 PM.199
Run Code Online (Sandbox Code Playgroud)
而 24 小时格式的相同日期/时间显示如下:
12/14/2017 15:45:45.199
Run Code Online (Sandbox Code Playgroud)
有没有办法显示 AM/PM 格式,如下所示:
12/14/2017 3:45:45.199 PM
Run Code Online (Sandbox Code Playgroud)
目的是根据用户本地化选项显示日期/时间,这就是我使用“L LTS”格式的原因。
var divEn = $('#divEn');
var divFi = $('#divFi');
var en = "en";
var pt = "pt";
var dateEn = moment().locale(en);
var dateFi = moment().locale(pt);
format = "L LTS.SSS";
divEn.text(dateEn.format(format));
divFi.text(dateFi.format(format));
Run Code Online (Sandbox Code Playgroud) 对于 fullCalendar 我编写了以下代码:
$('#mycalendar').fullCalendar(
{
allDaySlot:false,
slotDuration: '00:30:00' ,
//slotMinutes: '120',
lang: currentLangCode,
minTime: '4:00am',
maxTime: '24:00pm',
slotEventOverlap: true,
slotLabelFormat:'h(:mm)a',
showAgendaButton: true,
columnFormat: { month: 'ddd', week: 'ddd M/D', day: 'ddd M/D' },
timeFormat: 'H:mm',
defaultView: 'listWeek',
eventLimit: true,
theme:false,
editable: true,
contentHeight:'auto',
weekends: false ,
//timezoneParam: 'America/Los_Angeles',
//ignoreTimezone: false,
header:
{
left: 'prev,next today',
center: 'title',
// right: 'agendaWeek'
right: 'month,agendaWeek,agendaDay,listWeek'
},
views: {
listDay: { buttonText: 'Day' },
listWeek: { buttonText: 'Week' },
month: {
columnFormat: 'ddd'
}, …Run Code Online (Sandbox Code Playgroud) 我想使用以下方式将当前日期和时间转换为moment.js.
使用 javascript new Date() 的当前日期和时间:Thu Jul 12 2018 09:28:51 GMT+0530 (India Standard Time)并希望将上述格式转换为下面提到的格式。
1. Thu, 12 Jul 2018 09:31:37 GMT
2. 2018-07-12T09:31:38Z
Run Code Online (Sandbox Code Playgroud) 我想从一个人的出生日期计算他的年龄。
我知道可以通过返回出生后的月数或年数moment().diff(date_of_birth, 'months').
我想返回一些更具体的内容,如下所示:
23 days(如果该人还不到一个月大)或2 months或1 year 2 months
我们可以用 Momentjs 做到这一点吗?
我正在尝试使用 Moment.js 从自定义日期字符串中提取月份和年份
Wed Dec 24 00:00:00 -0800 2014。
我找到了之前的答案:How to parse Give date string using moment.js? 但接受的答案会引发错误。
认为语法是:
var date = moment("Wed Dec 24 00:00:00 -0800 2014","ddd MMM DD HH:MM:SS ZZ YYYY").format('dd');
console.log(date);预期输出是24但返回Invalid Date。
有什么想法如何从给定的日期字符串中提取日期吗?谢谢。
我有个约会:
EventDate: "2018-10-10T00:00:00Z"
Run Code Online (Sandbox Code Playgroud)
我运行它moment:
let date = moment(event.EventDate).format("MM/DD/YYYY");
Run Code Online (Sandbox Code Playgroud)
我得到前一天的信息:
date: 10/09/2018
Run Code Online (Sandbox Code Playgroud)
怎么了?
编辑:
这不是重复的;有一个具体的答案moment解决了时区问题。
我有这样的对象结构
var x = {
nextSlot: 30,
breakTime: [
['11:00', '14:00'], ['16:00', '18:00']
],
startTime: '8:00',
endTime: '20:00'
}
Run Code Online (Sandbox Code Playgroud)
我想生成从 startTime 到 endTime 的时间段。但我不想考虑时间段中的breakTime。输出应该是
['08:00','08:30','09:00','09:30','10:00','10:30','14:00','14:30','15:00','15:30', '17:30', '18:00', '18:30','19:00','19:30']
Run Code Online (Sandbox Code Playgroud)
我实现了我自己的逻辑。但这适用于;y 对于长度为 1 的breaktime 数组。
// Check whether the startTime is less than endTime
while (moment(x.startTime, ['HH:mm']).format('HH:mm') < moment(x.endTime, ['HH:mm']).format('HH:mm')) {
for (let i = 0; i < x.breakTime.length; i++) {
// if startTime is greater then breakTime[i][0], and if starttime is less then breaktime[i][1],
//just add nextSlot to starttime
if (moment(x.startTime, …Run Code Online (Sandbox Code Playgroud) date = moment(startDate).startOf('day');
date.format('2019-01-01't)
Run Code Online (Sandbox Code Playgroud)
上面的代码将 UTC 日期转换为本地日期。如何保持 UTC 日期 UTC?
startDate 是 iso 格式的日期时间字符串
我以 UTC 格式将时间保存在 mongodb 数据库中。但我想根据客户的时区向客户显示时间。目前时间是根据服务器的时区显示的。我可以将服务器的时区更改为其他值,但随后它将再次保持静态,并且不会根据客户端的时区显示。
我尝试使用 getTimezoneOffset() 但它显示 0 偏移量,并且 MomentJS 猜测函数显示 UTC 时区,即使客户端的时区是亚太地区。那么如何在后端使用 NodeJS 获取客户端的时区或偏移量而不是根据服务器位置呢?
我的 RN 应用程序中有以下代码。
getFormattedDate = (date) => {
const formattedDate = moment(new Date(date)).format('MMMM, DD YYYY');
return { date: formattedDate };
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器上运行它时,格式化的日期会正确显示。但是当我在设备上运行它时,它说日期无效。我在这里做错了什么?
javascript ×10
momentjs ×10
node.js ×2
date ×1
fullcalendar ×1
heroku ×1
loops ×1
react-native ×1
timeslots ×1
utc ×1