使用moment.js解析日语日期字符串

时间:2015-03-23 00:04:49

标签: javascript date locale momentjs

我该如何解析?

'2015年 Oct月10日 (Sat)'

与时刻js?

我一直在尝试

moment('2015年 Oct月10日 (Sat)', ['DD-MM','DD-MMM','YYYY MMMM DD']);

无济于事..

4 个答案:

答案 0 :(得分:6)

时刻具有非常好的国际化支持。但是,您似乎混合使用英文短月名称和日文字符。

日语中的默认本地化数据使用数字月份。您可以在此处查看短月份名称的加载数据:

moment.locale('ja');
moment.monthsShort()
// ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]

但是,您可以轻松自定义区域设置数据,描述为here

moment.locale('ja', {monthsShort: ["Jan月", "Feb月", "Mar月", "Apr月", "May月", "Jun月", "Jul月", "Aug月", "Sep月", "Oct月", "Nov月", "Dec月"]});

现在,当您查看短月数据时,您会看到您提供的值。

现在所有正常时刻函数都会使用这些数据,所以你可以像这样简单解析:

moment.locale('ja');
var m = moment('2015年 Oct月10日 (Sat)', 'll');

请注意,ll格式不包含额外的星期信息,但是时刻的解析器会原谅。

调整区域设置数据而不是去除事物的好处是,您现在还可以使用时刻的format函数来创建输出字符串,它将使用相同的样式。 / p>

答案 1 :(得分:2)

一旦你删除了日文字符,它就可以正常工作。至少到目前为止我已经测试过了。

var test = moment('2015年 Oct月10日 (Sat)'.match(/[a-zA-Z0-9]/g).join(""),"YYYY-MMM-DD");
test.toLocaleString();
//output : "Sat Oct 10 2015 00:00:00 GMT+0900"

答案 2 :(得分:1)

这很好用:

moment('2015年 Oct月10日 (Sat)','YYYY- MMM-DD-');
//                                ^^^

你刚刚错过了年份的占位符。 -作为"忽略此字符"字符。

答案 3 :(得分:0)

$postData= array("email" => "smart@acme.com", "password" => "Secret","Submit"=>"Login");                                                                    
$data_string = json_encode($postData);                                                                                   

$ch = curl_init('http://api.remote.com');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
);                                                                                                                   

$result = curl_exec($ch);

jsfiddle.net/369shdep/33/