关于Js的Date与Qt的QDateTime之间的暧昧

注:此文章只适合于C++与QML相结合的开发者阅读,既要熟悉Qt的开发环境又要对js语法做些了解,更要对QML解释性语言进行全面的学习。

              最近开了一个项目管理系统的客户端,其中用到了C++与QML混合编程,其中一个QML界面需要用到当前的时间,通过服务器推送消息显示到QML界面,其他他们推送的数据中有以时间戳的字段,必须解析成我们标准的北京时间才可以,故了解了下js关于Date的一些语法与函数,对于Date详细请参考Js的Date语法。

    开始由于Ui需要将时间的日月和时分秒分开,所以js里面是这样写的:

function getLocalMonTime(nS)
{
    console.log("getLocalMonTime "+nS);
    var day = new Date(parseInt(nS)*1000);//.toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
    console.log("getCurrentDate1 "+day.getUTCMonth()+"/"+day.getDate());
    var tmp = day.getMonth()+"/"+day.getDate();
    return tmp;
}
function getLocalHourTime(nS)
{
    console.log("getLocalHourTime "+nS);
    var day = new Date(parseInt(nS) * 1000);//.toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
    //console.log("getCurrentDate2 "+day.getHours()+":"+day.getMinutes());
    var tmp = day.getHours()+":"+day.getMinutes();
    return tmp;
}

后来发现日期和真实日期整整少了一个月,仔细一查getMonth()返回值为0~11之间,才明白函数返回值的意义有多重要。

下面说下QDateTime下把当前时间转化为时间戳UTC的方法:

 qint64 tmp1 = QDateTime::currentDateTime().toTime_t();
接下来贴几张图片看看QML的界面是如此简单: 关于Js的Date与Qt的QDateTime之间的暧昧_第1张图片 关于Js的Date与Qt的QDateTime之间的暧昧_第2张图片



你可能感兴趣的:(关于Js的Date与Qt的QDateTime之间的暧昧)