我有一个信用卡到期日,月份和年份只是以字符串08/17
的形式出现,如何以格式更改此字符串,以便我可以将其传递给Authorize.net
< / p>
$creditCard->setExpirationDate( "2017-08");
我曾尝试使用strtotime()
,但它给了我当前年份
echo $date = date('Y-m', strtotime($ccInfo['exp_date']));
答案 0 :(得分:5)
您应该使用date_create_from_format
代替strtotime
来构建日期:
echo date_create_from_format('m/y', '08/17')->format('Y-m');
该函数创建一个\DateTime
对象,因此您可以调用format来获取所需的格式。
答案 1 :(得分:0)
您也可以这样写
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *my_fgets(char my_string[], int bytes, FILE *fp) {
int c, i = 0;
if (bytes <= 0)
return my_string;
while (i < bytes - 1 && ((c = getc(fp)) != EOF) {
my_string[i++] = c;
if (c == '\n')
break;
}
my_string[i] = '\0'; //adding NUL character at the end
if (i > 0) {
return my_string;
} else {
return NULL; // no character read at end of file
}
}
int main(void) {
char my_string[15];
int n;
char *p;
p = my_fgets(my_string, sizeof(my_string), stdin);
printf("%s\n", my_string);
printf("%s\n", p);
return 0;
}