Javascript 如何在API调用中使用当前日期/时间?

Javascript 如何在API调用中使用当前日期/时间?,javascript,automated-tests,cypress,Javascript,Automated Tests,Cypress,我有一个进行API调用的测试,我要传递的正文的一个必要部分是时间戳。除了最后一个测试之外,整个测试都在运行(如果我在每次测试执行之前手动设置日期/时间,则测试成功) 我一直在尝试设置这样一个变量: const todaysDate = Cypress.moment().format('YYYY-MM-DDTHH:MM:SS-07:00'); 但是我不知道如何在API调用中使用它。API参数的格式如下: "offDateTime": "YYYY-MM-DDTHH:MM:SS-07:00" 有人

我有一个进行API调用的测试,我要传递的正文的一个必要部分是时间戳。除了最后一个测试之外,整个测试都在运行(如果我在每次测试执行之前手动设置日期/时间,则测试成功)

我一直在尝试设置这样一个变量:

const todaysDate = Cypress.moment().format('YYYY-MM-DDTHH:MM:SS-07:00');
但是我不知道如何在API调用中使用它。API参数的格式如下:

"offDateTime": "YYYY-MM-DDTHH:MM:SS-07:00"

有人能帮我吗?

我想说的是,根据api的需要调整给定的参数

    const todaysDate = Cypress.moment().format('YYYY-MM-DDTHH:MM:SS-07:00');
如何在API调用中使用取决于您如何创建调用以及案例中的具体需求。当您的API使用某种JSON来运行时,它通常看起来像这样

        const date = new Date();
  const timestamp = date.getTime();
  const publicKey = '<publickey>';
  const privateKey = '<privateKey>'

   cy.request(`/v1/public/orders?ts=${timestamp}&apikey=${publicKey}&hash=${hash}`)
  .then((response) => {
      expect(response.body).to.have.property('offDateTime', todaysDate )
  })
const date=新日期();
const timestamp=date.getTime();
常量公钥=“”;
const privateKey=“”
cy.request(`/v1/public/orders?ts=${timestamp}&apikey=${publicKey}&hash=${hash}`)
。然后((响应)=>{
expect(response.body).to.have.property('offDateTime',todaysDate)
})

此snipplet将使用
-cv.visit(url)
声明对baseUrl上现有文件或显式给定url的请求。若文件引用了cypress.json配置文件中的baseUrl,那个么该url将是
[baseUrl]/v1/public/orders
。剩下的就像您将AJAX请求设置到此文件一样,您将从该文件中获得响应,并且可以尝试捕获预期值是否存在

要检索将来的日期,您可以轻松地使用moment.js cypress自动包含

如何添加未来日期的快速示例:

    var twoDaysForward = new Cypress.moment().add(2, 'day');
    document.write(twoDaysForward.format('YYYY-MM-DDTHH:MM:SS-07:00'); 
分钟也一样

    twoDaysForward.add(minutes, 'minutes');

如果格式为
YYYY-MM-DDTHH:MM:SS
为什么要使用
yyy-MM-DDTHH:MM:SS-07:00
,可能在API调用之前或之后更改/摆弄时区偏移量,这是什么意思?使用?或者从您正在测试的客户端应用程序?你试过什么,有什么具体问题吗?我错了,我漏掉了“-07:00”部分。修复了原始帖子。@jonrsharpe时间戳是对我的端点的调用中的一个必需参数,必须在将来,例如,从当前时间和日期算起+1分钟。是的,我正在使用cy.request,这是我在其他测试中使用的,这里的问题是需要时间戳以实际的当前时间和日期为基础。这在问题中一点也不清楚,请描述实际的问题。如果您想调整时间,您是否阅读了时刻文档?