首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把白天的时间转化为只有时间和时间的时刻

把白天的时间转化为只有时间和时间的时刻
EN

Stack Overflow用户
提问于 2019-09-23 22:25:11
回答 2查看 684关注 0票数 0

我正在尝试将字符串'Wed,晚上11:45‘转换为适当的日期时间(最好是UTC)。不需要这个月就行吗?合适的日期是即将到来的星期三。今天是星期一(二十三号),所以星期三是二十五号。

代码语言:javascript
复制
const time = 'Wed, 11:45 pm'
const datetime = moment(time).utc() // yields 2019-09-23T05:00:00Z (todays date)

我需要它的产量2019-09-25T22:25:58Z (两天,星期三,从现在起)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-24 01:53:09

我认为你的问题必须分成几个步骤,你的要求不是很清楚。

我在这里做的步骤是

  1. 将您的输入拆分为“Wed”和“11:45 pm”。
  2. 使用“Wed”来计算下一个星期三(如果今天是星期三,那么周三仍然是今天或下个星期三)
  3. 将11:45设置为时间和分钟。
  4. 将其更改为您喜欢的格式。

我看到你的标签有柏树,所以我用上面的函数写了一个柏树测试。

代码语言:javascript
复制
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;
    }
}

我在2019-9-24年测试了它,输入'Wed,11:45 pm‘它返回世界协调时间209-09-24T11:45:00Z。

票数 1
EN

Stack Overflow用户

发布于 2019-09-24 02:28:01

试一试

代码语言:javascript
复制
moment('Wed, 11:45 pm', 'ddd HH:mm a')
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58070883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档