Javascript 时刻将day str转换为仅包含日期和时间的时刻
我正在尝试将字符串“Wed,11:45pm”转换为适当的日期时间(最好是UTC)。有没有可能不需要一个月的时间?合适的日期是即将到来的星期三。今天是星期一(23日),所以星期三是25日Javascript 时刻将day str转换为仅包含日期和时间的时刻,javascript,momentjs,cypress,Javascript,Momentjs,Cypress,我正在尝试将字符串“Wed,11:45pm”转换为适当的日期时间(最好是UTC)。有没有可能不需要一个月的时间?合适的日期是即将到来的星期三。今天是星期一(23日),所以星期三是25日 const time = 'Wed, 11:45 pm' const datetime = moment(time).utc() // yields 2019-09-23T05:00:00Z (todays date) 我需要它产生2019-09-25T22:25:58Z(两天,星期三,从现在开始)我认为你的问
const time = 'Wed, 11:45 pm'
const datetime = moment(time).utc() // yields 2019-09-23T05:00:00Z (todays date)
我需要它产生2019-09-25T22:25:58Z(两天,星期三,从现在开始)我认为你的问题必须分成几个步骤,你的要求不是很清楚 我在这里做的步骤是
describe('Find the coming Wednesday', () => {
it('test',()=>{
cy.visit('https://www.google.com');
const time = "Wed, 11:45 pm";
var returnedDatetime = findComingDate(time);
const outputDatetime = Cypress.moment(returnedDatetime).utc().format();
console.log(outputDatetime);
})
})
function findComingDate(dayAndTime) {
//split your string
var dayAndTime = dayAndTime.split(',');
var day = dayAndTime[0];
var time = dayAndTime[1];
var parts = time.match(/(\d+):(\d+) (am|pm)/);
if (parts) {
var hours = parseInt(parts[1]),
minutes = parseInt(parts[2]),
tt = parts[3];
}
if (tt === 'pm' && hours < 12) hours += 12;
var days = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];
var dayindex = days.indexOf(day) + 1;
if (dayindex === 0) {
throw ('You can only input 3 letters for the day name')
}
else {
var cd = new Date();
//use commented code below if today is tuesady and your input is tuesday and you want output is today.
cd.setDate(cd.getDate() + ((7-cd.getDay())%7+dayindex)%7);
//use commented code below if today is tuesady and your input is tuesday and you want output is next tuesday.
//cd.setDate(cd.getDate() + (7-cd.getDay())%7+dayindex)
//change the time
cd.setHours(hours,minutes,0,0);
return cd;
}
}
descripe('查找即将到来的星期三',()=>{
它('test',()=>{
参观https://www.google.com');
const time=“星期三晚上11:45”;
var returnedDatetime=FindMingDate(时间);
const outputDatetime=Cypress.moment(returnedDatetime).utc().format();
console.log(outputDatetime);
})
})
函数findMingDate(dayAndTime){
//分开你的绳子
var dayAndTime=dayAndTime.split(',');
var day=dayAndTime[0];
var时间=dayAndTime[1];
变量部分=时间匹配(/(\d+):(\d+)(上午|下午)/;
如有(部分){
var小时数=parseInt(第[1]部分),
分钟=parseInt(第[2]部分),
tt=零件[3];
}
如果(tt==‘pm’&&hours<12)小时+=12;
var days=[‘星期一’、‘星期二’、‘星期三’、‘星期五’、‘星期六’、‘星期日’];
var dayindex=天。indexOf(天)+1;
如果(dayindex==0){
throw('您只能为日期名称输入3个字母')
}
否则{
var cd=新日期();
//如果今天是星期二,输入是星期二,输出是今天,请使用下面的注释代码。
cd.setDate(cd.getDate()+((7-cd.getDay())%7+dayindex)%7);
//如果今天是星期二,输入是星期二,输出是下星期二,请使用下面的注释代码。
//cd.setDate(cd.getDate()+(7-cd.getDay())%7+dayindex)
//改变时间
cd.设定小时数(小时,分钟,0,0);
返回光盘;
}
}
我在2019-9-24测试了它,输入“Wed,11:45 pm”,它返回UTC时间
2019-09-24T11:45:00Z试试看
moment('Wed, 11:45 pm', 'ddd HH:mm a')