v8::value 到日期之间的转换
Conversion between v8::value to date
我正在使用 nan 在 v8 上编写 C++ 插件。构造函数的参数之一是 Date 类型。 IsDate returns 是的,但我不知道如何将它转换为 C++ 日期对象以获得年月日等。
void NodeObject::New(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if(info[0]->IsDate()) {
//convert and get year, month and day
boost::gregorian::date d(2016 , 1 ,1);
double price = getPrice(date);
}
}
感谢您的帮助!
您可以使用 v8::Date::Cast 函数将 v8 值转换为日期对象。
从那里您可以使用 NumberValue
函数提取自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。
然后通过转换秒数 static_cast<time_t>(millisSinceEpoch/1000)
将此数字转换为 std::time_t 对象
从 time_t
得到一个 struct *tm with the localtime 函数。
然后最终提取 day/month/year 值:
void NodeObject::New(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if(info[0]->IsDate()) {
double millisSinceEpoch = v8::Date::Cast(*info[0])->NumberValue();
std::time_t t = static_cast<time_t>(millisSinceEpoch/1000);
struct tm* ltime = localtime(&t);
int year = ltime->tm_year + 1900;
int month = ltime->tm_mon + 1;
int day = ltime->tm_mday;
boost::gregorian::date d(year, month, day);
double price = getPrice(date);
}
}
我正在使用 nan 在 v8 上编写 C++ 插件。构造函数的参数之一是 Date 类型。 IsDate returns 是的,但我不知道如何将它转换为 C++ 日期对象以获得年月日等。
void NodeObject::New(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if(info[0]->IsDate()) {
//convert and get year, month and day
boost::gregorian::date d(2016 , 1 ,1);
double price = getPrice(date);
}
}
感谢您的帮助!
您可以使用 v8::Date::Cast 函数将 v8 值转换为日期对象。
从那里您可以使用 NumberValue
函数提取自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。
然后通过转换秒数 static_cast<time_t>(millisSinceEpoch/1000)
从 time_t
得到一个 struct *tm with the localtime 函数。
然后最终提取 day/month/year 值:
void NodeObject::New(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if(info[0]->IsDate()) {
double millisSinceEpoch = v8::Date::Cast(*info[0])->NumberValue();
std::time_t t = static_cast<time_t>(millisSinceEpoch/1000);
struct tm* ltime = localtime(&t);
int year = ltime->tm_year + 1900;
int month = ltime->tm_mon + 1;
int day = ltime->tm_mday;
boost::gregorian::date d(year, month, day);
double price = getPrice(date);
}
}