收藏
回答

云开发 体验版真机测试获取不到时间,是NaN,怎么破 ?

获取时间转成北京时间代码

import{utc_beijing} from "../../utils/jumpUtils.js";
const app = getApp()
Page({
  creatOrder(goodsnum){
      //获取当前时间戳  转换成北京时间
      let timestamp = formatTime(utc_beijing(app.globalData.serverDate)) ;  
  }
  })


../../utils/jumpUtils.js
//utc时间转北京时间


const utc_beijing = utc_datetime =>{
  
  // 转为正常的时间格式 年-月-日 时:分:秒
  console.log('utc_beijing 中 utc_datetime:'+utc_datetime)
  //utc_datetime=utc_datetime.replace(/-/g, '/')
  //console.log('utc_beijing 中 utc_datetime:'+utc_datetime)
  var T_pos = utc_datetime.indexOf('T');
  var Z_pos = utc_datetime.indexOf('Z');
  var year_month_day = utc_datetime.substr(0, T_pos);
  var hour_minute_second = utc_datetime.substr(T_pos + 1, Z_pos - T_pos - 1);
  var new_datetime = year_month_day + " " + hour_minute_second; // 2017-03-31 08:02:06
  console.log('utc_beijing 中 new_datetime:'+new_datetime)
  console.log('utc_beijing 中 new_datetime after replace:'+new_datetime.replace(/-/g'/'))
  console.log('utc_beijing 中 new_datetime Date.parse:'+Date.parse(new_datetime.replace(/-/g'/')) )
  //console.log('utc_beijing 中 new_datetime before replace Date.parse:'+Date.parse(new_datetime.replace(/-/g, '/')) )
  
  // 处理成为时间戳
  timestamp = new Date(Date.parse(new_datetime.replace(/-/g'/')));
  timestamp = timestamp.getTime();
  timestamp = timestamp / 1000;
  // 增加8个小时,北京时间比utc时间多八个时区
  console.log('cur timestamp is : '+ timestamp)


  var timestamp = timestamp + 8 * 60 * 60;


  // 时间戳转为时间
  
 // var beijing_datetime = new Date(parseInt(timestamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
  var beijing_datetime = new Date(parseInt(timestamp) * 1000)
  
  console.log('utc_beijing 中 beijing_datetime:'+beijing_datetime)
  return beijing_datetime; // 2017-03-31 16:02:06module.exports = {
  utc_beijing: utc_beijing
}


formatTime已经转成/了为什么还不行?是转的地方不对吗?

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()


  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}


云函数:

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ 
  traceUsertrue,
  env'prod-xxx'
})
// 云函数入口函数
exports.main = async (event, context) => {
  return new Date()
}


app.js

//app.js
App({ 
  onLaunchfunction () { 
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        // env 参数说明:
        //   env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
        //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
        //   如不填则使用默认环境(第一个创建的环境)
  
        env'prod-xxx',
        traceUsertrue,
      })
    }
    this.globalData = { serverDatethis.getserverDate()}
  

  }, 
   
    //获取服务器时间
    getserverDate:function(){
      wx.cloud.callFunction({
        name'getdate',
        successfunction (res{
          getApp().globalData.serverDate = res.result
        }
      })
    },

})
最后一次编辑于  2020-08-21
回答关注问题邀请回答
收藏

2 个回答

  • 北落师门
    北落师门
    2020-08-19

    补充一下appid,请官方客服看一下吧

    2020-08-19
    有用
    回复 1
    • 小玉
      小玉
      2020-08-20
      wx5065c2046cf2b498 请问怎么联系官方客服
      2020-08-20
      回复
  • 小玉
    小玉
    2020-08-18

    代码片段:

    https://developers.weixin.qq.com/s/3Kw6yGm87Rjm

    2020-08-18
    有用
    回复 1
    • 小玉
      小玉
      2020-08-21
      @社区技术运营专员 请帮忙看看
      2020-08-21
      回复
登录 后发表内容
问题标签