2012-10-15 34 views

回答

10

在C#中,可以這樣做:

myTime.ToString("MM/dd/yyyy hh:mmtt"); 

或者,你可以使用Format Specifiers描述here內置

編輯 - 我刪除mm和之間的空間。,因爲我剛剛注意到你的帖子顯示8:45PM。如果您希望它是8:45 PM,您可以在mmtt之間添加一個空格。

+0

如果這些字符串起源於一個日期,這將是最好的方式來做到這一點。此外,您可以使用DateTime.TryParseExact:http://www.dotnetperls.com/datetime-tryparse解析它,然後使用ToString將其放回到字符串中。 –

0

好了,你可以嘗試:

var string="10/14/2012 8:45:34 PM"; 
var resultArray = string.split(":"); 
var result = string.replace(resultArray[2],""); 

應該在JavaScript中有效地工作。在一秒鐘內不好測試它,並更新它。

UPDATE:

var string="10/14/2012 8:45:34 PM"; 
var resultArray = string.split(":"); 
var result = string.replace(":"+resultArray[2]," ")+resultArray[2].split(" ")[1]; 

一點點令人討厭。但它工作得很好:http://jsfiddle.net/x8uUW/

UPDATE使用正則表達式(我用一個正則表達式生成器,所以它並不像緊湊,因爲它可以通過任何手段,但它的工作:http://jsfiddle.net/x8uUW/1/

+0

這留下了AM/PM –

+0

權。呃,它得到了混亂... – bengreenier

+0

也許你可以使用正則表達式來替換最後:NN與空白。但我認爲它總是更好地處理這些來源,而不是黑客入侵。 –

3

如果該字符串格式一致,那麼:

var s = '10/14/2012 8:45:34 PM'; 
s = s.replace(/:\d+ (\w\w)$/, '$1'); // 10/14/2012 8:45PM 

我希望,只是要通過非常有限的觀衆使用,因爲這種格式將被絕大多數人被誤解。一個更廣泛的理解和更少明確的格式是:

2012-10-14 8:45PM 
2

您可以使用正則表達式。

C#:

string d = "10/14/2012 8:45:34 PM"; 
d = Regex.Replace(d, @":\d\d ", String.Empty); 

的Javascript:

var d = "10/14/2012 8:45:34 PM"; 
d = d.replace(/:\d\d /, ''); 
0

我試過Axure使用JavaScript ToString()設置控件的文本,但失敗了,正則表達式在Axure是不可能的(至少,當時我發佈了這個),所以我想出了另一個簡單的替代方法,但效率不高的方法:

aDate.toLocaleTimeString().replace(':'+aDate.getSeconds(),'') 
+0

Date.prototype.toShortTimeNoSeconds = function(){ return this.toLocaleTimeString()。replace(':'+ this.getSeconds(),''); } //用法:new Date()。toShortTimeNoSeconds(); – Alexander

1

您可以使用正則表達式進行字符串操作,並且非常容易。

var mydate = "10/14/2012 8:45:34 PM"; 
 

 
var formated_date = mydate.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})\ (\d{1,2}):(\d{1,2}):(\d{1,2})\ (.*)/, "$1/$2/$3\ $4:$5$7"); 
 

 
document.write(formated_date);

相關問題