Чтобы получить все ваши входы формы, в том числе type = "file" , вам нужно использовать объект FormData . вы сможете увидеть содержимое formData в отладчике -> network -> Headers после того, как вы отправите форму.
var url = "YOUR_URL";
var form = $('#YOUR_FORM_ID')[0];
var formData = new FormData(form);
$.ajax(url, {
method: 'post',
processData: false,
contentType: false,
data: formData
}).done(function(data){
if (data.success){
alert("Files uploaded");
} else {
alert("Error while uploading the files");
}
}).fail(function(data){
console.log(data);
alert("Error while uploading the files");
});
В библиотеке POCO есть класс DateTimeParser, который может помочь вам в этом. http://www.appinf.com/docs/poco/Poco.DateTimeParser.html
Я понял это, не используя strptime
.
Разделите дату вниз на ее компоненты, т.е. день, месяц, год, затем:
struct tm tm;
time_t rawtime;
time ( &rawtime );
tm = *localtime ( &rawtime );
tm.tm_year = year - 1900;
tm.tm_mon = month - 1;
tm.tm_mday = day;
mktime(&tm);
tm
может теперь преобразуется в time_t
и обрабатывается.
Для всех, кто ищет strptime()
для Windows, для этого требуется источник самой функции. К сожалению, последний код NetBSD не переносится в Windows.
Я сам использовал реализацию здесь (strptime.h и strptime.c).
Еще один полезный фрагмент кода можно найти здесь здесь . Это происходит из Google Codesearch, который больше не существует.
Надеюсь, это экономит много поисков, так как мне потребовалось некоторое время, чтобы найти это (и чаще всего это заканчивалось на этом вопросе).
Вы можете попробовать Input / Output Boost.Date_Time .
Почему бы не пойти на более простое решение, используя boost
using namespace boost::gregorian;
using namespace boost::posix_time;
ptime pt = time_from_string("20150917");
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
#include <time.h>
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
int main ()
{
time_t rawtime;
struct tm * timeinfo;
int year, month ,day;
char str[256];
cout << "Inter date: " << endl;
cin.getline(str,sizeof(str));
replace( str, str+strlen(str), '/', ' ' );
istringstream( str ) >> day >> month >> year;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
mktime ( timeinfo );
strftime ( str, sizeof(str), "%A", timeinfo );
cout << str << endl;
system("pause");
return 0;
}
Вы можете использовать библиотеку boost (cross platform)
#include <stdio.h>
#include "boost/date_time/posix_time/posix_time.hpp"
int main()
{
std::string strTime = "2007-04-11 06:18:29.000";
std::tm tmTime = boost::posix_time::to_tm(boost::posix_time::time_from_string(strTime));
return 0;
}
Но формат должен быть указан как:)