我有一个字符串Mon 03-Jul-2017, 11:00 AM/PM,我必须将其转换为像11:00 AM/PM使用时刻js 的字符串.
这里的问题是我无法获取AM或PM来自日期时间字符串.
我这样做:
moment(Mon 03-Jul-2017, 11:00 AM, 'dd-mm-yyyy hh:mm').format('hh:mm A')
Run Code Online (Sandbox Code Playgroud)
并且它正常工作,11:00 AM但如果字符串中有PM它仍然AM在输出中给出.
像这样moment(Mon 03-Jul-2017, 11:00 PM, 'dd-mm-yyyy hh:mm').format('hh:mm A')也是11:00 AM输出而不是11:00 PM
我正在为一个事件页面制作一个倒数计时器,我用了这个时刻js.
这是小提琴.
我正在计算事件日期和当前日期(时间戳)之间的日期差异,然后使用从时刻js开始的"持续时间"方法.但剩下的时间并没有像预期的那样到来.
预计 - 00:30m:00s
Actual - 5h:59m:00s
代码:
<script>
$(document).ready(function(){
var eventTime = '1366549200';
var currentTime = '1366547400';
var time = eventTime - currentTime;
var duration = moment.duration(time*1000, 'milliseconds');
var interval = 1000;
setInterval(function(){
duration = moment.duration(duration.asMilliseconds() - interval, 'milliseconds');
$('.countdown').text(moment(duration.asMilliseconds()).format('H[h]:mm[m]:ss[s]'));
}, interval);
});
</script>
Run Code Online (Sandbox Code Playgroud)
我阅读了momentjs文档以找出问题,但没有运气.
谢谢你的时间.
更新:
我最终这样做:
<script>
$(document).ready(function(){
var eventTime = '1366549200';
var currentTime = '1366547400';
var leftTime = eventTime - currentTime;//Now i am passing the left time from controller itself which handles …Run Code Online (Sandbox Code Playgroud) 我已经阅读了文档,对于如何继续进行操作有点困惑.有类似的问题,但没有人谈论解析格式中收到的特定日期和本地和utc日期之间的交换.
我收到一个本地日期时间,本地日期时间格式,需要以特定格式从中生成utc datetime,这就是我认为我应该这样做的方式. moment(dateTime,localDateTimeFormat).utc().format(specifiedFormat);
我以特定格式接收utc datetime,并且必须以特定格式生成特定于语言环境的日期时间.我该怎么做?
moment.utc(utcDateTime, utcDateTimeFormat).toDate();给我javascript日期我相信.我怎么格式化呢?我是否必须使用生成的Date对象创建新时刻?
我能做的另一件事就是获取时区然后格式化.我想知道我在这里采取了错误的路线.请帮忙.
我如何使用moment.js提取时间?
"2015-01-16T12:00:00"
Run Code Online (Sandbox Code Playgroud)
它应该返回"12:00:00 pm".字符串返回将传递给下面的timepicker控件.
http://jdewit.github.com/bootstrap-timepicker
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我想测试输入的日期和时间是否有效.
这可以用时间来完成,因为日期和时间测试使用javascript似乎是一场噩梦.(花了几个小时).
测试数据看起来像这样.
无效
invalid = ""
invalid = " "
invalid = "x"
invalid = "1/1"
invalid = "30/2/2015"
invalid = "2/30/2015"
Run Code Online (Sandbox Code Playgroud)
已验证
isvalid = "1/12/2015"
isvalid = "1/12/2015 1:00 PM";
Run Code Online (Sandbox Code Playgroud)
尝试了各种javascript方法,试用数小时失败.
我想当下会有一些东西.所以试过以下,所有这些都不起作用,因为我不认为时刻是这样的.
var valid = moment(input).isDate()
var valid = moment().isDate(input)
Run Code Online (Sandbox Code Playgroud)
我的时间格式是"dd/mm/yyyy"
我正在尝试使用moment.js来确定日期是今天,昨天,1周前还是更早(2周前或更长时间).
我已经为前两种情况做了这样的事情:
var today = moment().startOf('day');
var yesterday = moment().subtract(1, 'days').startOf('day');
if (moment(localTime).isSame(today, 'd')) // today
// do something
if (moment(localTime).isSame(yesterday, 'd')) // yesterday
// do something
Run Code Online (Sandbox Code Playgroud)
那是对的吗?
但是,我如何检查日期是一周前还是更早(例如两周前)?
我想获得当前日期,但时间应该是 00:00:00.000
我试过这个:
var m = moment();
m.set({hour:0,minute:0,second:0,millisecond:0});
console.log(m.toISOString());
Run Code Online (Sandbox Code Playgroud)
但我有:2016-01-12T23:00:00.000Z为什么23而不是00?
我有一个时间戳产生的输出给出12小时格式的时间.
Eg : "1:45 AM (or) "12:15 PM" as **string**
Run Code Online (Sandbox Code Playgroud)
有没有办法使用时刻js回溯日期对象将此字符串格式解析为24小时?
我希望得到下周一或周四的日期(如果是周一或周四,则为今天).由于Moment.js在星期日 - 星期六的范围内工作,我必须在当天计算并根据以下计算下周一或周四:
if (moment().format("dddd")=="Sunday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Monday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Tuesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Wednesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Thursday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Friday") { var nextDay = moment(.day(8); }
if (moment().format("dddd")=="Saturday") { var nextDay = moment().day(8); }
Run Code Online (Sandbox Code Playgroud)
这有效,但肯定有更好的方法!